Foros del Web » Programando para Internet » PHP »

No pasa de página! (Probando las sesiones)

Estas en el tema de No pasa de página! (Probando las sesiones) en el foro de PHP en Foros del Web. Hola amigos. Estoy probando el manejo de las sesiones. Tengo una base de datos con usuarios registrados. Y ahora lo que quiero es lo típico: ...
  #1 (permalink)  
Antiguo 17/05/2005, 11:30
 
Fecha de Ingreso: septiembre-2003
Mensajes: 337
Antigüedad: 20 años, 7 meses
Puntos: 4
No pasa de página! (Probando las sesiones)

Hola amigos. Estoy probando el manejo de las sesiones. Tengo una base de datos con usuarios registrados. Y ahora lo que quiero es lo típico: que un usuario ingrese al sitio primcipal metiendo su nick y su password. El problema es que no pasa de la página donde ingresa los datos. Lo hago de la siguiente forma:
¿Alguien ve algún fallo? Espero que se entienda... Gracias de antemano

indiceee.php (con el action del formulario llama al "pru.php")
-------------------------------------------
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<echo
<form name="form1" method="post" action="pru.php">
<tr>
<td><font size="2" face="Arial, Helvetica, sans-serif">Nick usuario</font></td>
</tr>
<tr>
<input type="text" name="nick_cliente">
</tr>
<tr>
<font size="2" face="Arial, Helvetica, sans-serif">Password</font>
</tr>
<tr>
<input type="password" name="password_cliente">
</td>
</tr>
</table>
<input type="submit" name="login_cliente" value="LOGIN">
</font>
</form>
</body>
</html>
----------------------------------------------------------

pru.php (realiza la consulta a la base de datos e inicializa sesión)
----------------------------------------------------------
<?php
$link=mysql_connect("localhost","root","jon");
$base="inmobiliaria";
$tabla="usuario";
mysql_select_db($base,$link);
$Query = mysql_query("SELECT * FROM $tabla WHERE `nick_usuario` = '$_POST[nick_cliente]'");

if(mysql_num_rows($Query) != 0) {
$data = mysql_fetch_array($Query);
if($data['password_usuario'] = $_POST['password_cliente']) {
session_start();
$_SESSION['auth'] = true;
header("Location: index_sesionado.php");
} else {
$error = "El password ingresado es incorrecto";
}
} else {
$error = "El usuario ingresado no existe";
}
mysql_close($link);
?>
--------------------------------------------------------------------

script_de_sesion.php (script que realiza la autentificación del usuario)
--------------------------------------------------------------------
<?php
session_start();
if(!$_SESSION['auth']) {
header("Location: pru.php?error=true");
}
?>
----------------------------------------------------------------------

Y finalmente el fichero de la página principal: index_sesionado.php
---------------------------------------------------------------------
<?php include ("script_de_sesion.php");?>
<html>
<head>
<title>Untitled Document</title>
...
----------------------------------------------------------------------
  #2 (permalink)  
Antiguo 17/05/2005, 11:40
Avatar de dwaks  
Fecha de Ingreso: agosto-2002
Ubicación: Panamá
Mensajes: 962
Antigüedad: 21 años, 8 meses
Puntos: 15
Me gustaria aclararas segun las paginas hasta donde llega y que error marca, ejemplo:
Pongo user y password en el formulario, aqui se manda a la pagina y esto va bien pero desde aqui no me autentifica.

Cosas asi porque tu dices no pasa y no sabria decirte de donde?? has prueba poco a poco no hagas todo el codigo y despues pruebas a ver donde esta el error primero ve si las variables se mandan a pru e imprimelas en pantallas ya sabes que llegan bien ahora has la prueba con la consulta sql y vi si trae registro, ve poco a poco asi veras todos los errores que pasen en el camino.
  #3 (permalink)  
Antiguo 17/05/2005, 11:47
 
Fecha de Ingreso: septiembre-2003
Mensajes: 337
Antigüedad: 20 años, 7 meses
Puntos: 4
Es que no sale ningun error. Ingreso el nick, el password (ya sean correctos o no), pulso en el boton de LOGIN, y no hace absolutamente nada. Se queda la pantalla tal cual, con el nick y el password puestos... (gracias por la rapidez, por cierto)
  #4 (permalink)  
Antiguo 17/05/2005, 11:50
Avatar de dwaks  
Fecha de Ingreso: agosto-2002
Ubicación: Panamá
Mensajes: 962
Antigüedad: 21 años, 8 meses
Puntos: 15
Mira la linea 7 tienes
<echo

Quita ese echo mal puesto alli a ver si eso influye en tu explorer.
  #5 (permalink)  
Antiguo 18/05/2005, 08:19
 
Fecha de Ingreso: septiembre-2003
Mensajes: 337
Antigüedad: 20 años, 7 meses
Puntos: 4
Perfecto! Muchas gracias! Ahora sí que funciona!
A saber cómo narices introduje ese "echo" ahí, pero bueno...
Un comentario: en la autentificación del password me ha pasado una cosa curiosa: tal como la tenía me accedía a la página principal, aunque el password fuera incorrecto (si lo dejaba en blanco sí que me daba error, y si el usuario no existía tb me lo comunicaba). Por probar, he cambiado el orden del "if" de la autentificación con password. Es decir, ahora pregunto primero si no coiciden los passwords (antes lo primero que preguntaba era si coincidñian), y el caso es que sí que me funciona.
Repito: muchas gracias!
  #6 (permalink)  
Antiguo 18/05/2005, 12:03
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Otro detalle ..

Usa exit; despues de tus header() de tipo "location" . .sino, la ejecución del script continua. por ejemplo en:

Y finalmente el fichero de la página principal: index_sesionado.php
Código PHP:
<?php include ("script_de_sesion.php");?>
<html>
<head>
<title>Untitled Document</title>
Para nada te interes que se siga ejecutando ese script "autentificado" si no pasó la validación de tu variable de sesión.

Código PHP:
<?php
session_start
();
if(!
$_SESSION['auth']) {
header("Location: pru.php?error=true");
exit;
}
?>
Un saludo,
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:35.