Ver Mensaje Individual
  #2 (permalink)  
Antiguo 12/11/2003, 16:33
josemi
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

El uso correcto del header("Location") es:
Código PHP:
header("Location: la url");
exit;  
//ponerlo siempre 
Es porque el header("Location") NO PARA la ejecucion del script. Simplemente manda la cabecera y sigue con la siguiente linea de codigo.

¿Que es lo que pasaba con tu codigo? Pues que continuaba con el bucle, llegaba al ultimo registro de la tabla, y no coincide el user y pass y te redigia a error=3.

De todas formas, creo que tu logica esta mal. Porque recorres todos los registros, y para cada uno redireccionas tanto si esta bien como si esta mal. Asi que solo comprueba el primero.

Ademas, la forma tipica de haer esa comprobacion es dentro de la SQL, con el WHERE:
Código PHP:
$result=Mysql_query("SELECT * FROM usuarios WHERE nombre='$username' AND pass='$password'"); 
Y luego usar mysql_num_rows() (www.php.net/mysql_num_rows) para ver si ha devuelto un registro (si existe el usuario) o 0 (no existe el par username/password). Claro, con este sistema no puedes saber si no existe el userame, o no existe el password. Aunque podrias hacer en caso de que mysql_num_rows() devuelva 0, otras consultas para saber si existe el username y el password.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.