Si se ponen bien los datos funciona bien.
Si se pone mal el usuario, salta el cartel de usuario uinexistente, y pone el form de nuevo.
El problema es que si se pone bien el usuario, pero mal la contraseña, vuelve al login, pero no muestra el cartel de contraseña inválida!... y lo más loco, es que solo sucede la primera vez. Es decir si luego de que no acertó la primera vez, la vuelvo a ingresar mal.. ahi si me muestra el cartel. La verdad estoy hace media hora revisando el código, y no me doy cuenta de lo que sucede. Pongo el código a ver si alguien encuentra lo que sucede.
Soy nuevo en esto, así que quizá haya algo muy boludo que no estoy viendo..
Gracias de antemano
CODIGO DE LOGIN.PHP
Código php:
Ver original
<? $_SESSION['validate'] = 0; ?> <html> <head> <title>Log in</title> <link rel="stylesheet" type="text/css" href="login.css"> </head> <body> <? if ($_SESSION['error'] == 1) { echo "Contraseña inválida"; $_SESSION['error'] = 0; } else if ($_SESSION['error'] == 2) { echo "Usuario inexistente"; $_SESSION['error'] = 0; } else { echo " "; } ?> <div align="center"> <div class="contenedor"> <form action="validate.php" method="post"> <table> <tr> <td>Usuario:</td> <td><input type="text" name="usuario"></td> </tr> <tr> <td>Password:</td> <td><input type="password" name="password"></td> </tr> <tr> <td colspan="2" align="center"><input type="submit" value="Ingresar"></td> </tr> </table> </form> </div> </div> </body> </html>
CODIGO DE VALIDATE.PHP
Código php:
Ver original
<? $_SESSION['error'] = 0; $usuario = $_POST['usuario']; $password = $_POST['password']; if (!$conexion) { echo "No se puede conectar"; } $query = "SELECT * FROM sesiones WHERE user = '$usuario'"; $log = 0; { do { if($row['pass'] == $password) $log = 2; } } else $log = 1; if($log == 0) // Contraseña inválida { $_SESSION['error'] = 1; } else if($log == 1) // Usuario inexistente { $_SESSION['error'] = 2; } else if ($log == 2) // Success { $_SESSION['validate'] = 1; } ?>
Saludos