Ver Mensaje Individual
  #1 (permalink)  
Antiguo 12/11/2003, 15:15
White_Devi
 
Fecha de Ingreso: noviembre-2002
Ubicación: http://localhost/
Mensajes: 195
Antigüedad: 21 años, 5 meses
Puntos: 1
Problema con Mysql y usuarios

saludos, tengo un codigo para un sistema de logeo (bastante sencillo) para usuarios, pero tengo cierto error:

este es el codigo:

Código PHP:
$username=$HTTP_POST_VARS["username"];
$password=$HTTP_POST_VARS["password"];

If (!(
$link=mysql_connect("localhost","$db_user","$db_pass"))) {
echo 
"Error conectando a la base de datos";
exit();
}

If (!(
$select=mysql_select_db("$db",$link))) {
echo 
"Error seleccionando la base de datos";
}

$result=Mysql_query("SELECT * FROM usuarios");
while(
$row=mysql_fetch_array($result)) {
$user=$row['nombre'];
$pass=$row['pass'];
$cat=$row['cat'];

If (
$username==$user AND $password==$pass) {

  if (
$cat=="1") {
  
header ("location: rockat.php?user=$username");
  } elseif (
$cat=="2") {
  
header ("location: rockat8.php?user=$username");
  } elseif (
$cat=="3") {
  
header ("location: rockatx5.php?user=$username");
  } elseif (
$cat=="4"){
  
header ("location: rockatxx2.php?user=$username");
  } elseif (
$cat=="5") {
  
header ("location: rockatxx9.php?user=$username");
  }

}
elseif(
$username==$user AND $password!=$pass) {
header ("location: login.php?error=1");
}elseif(
$username!=$user AND $password==$pass) {
header ("location: login.php?error=2");
}elseif(
$username!=$user AND $password!=$pass) {
header ("location: login.php?error=3");
}

El problema es el siguiente, cuando alguien se logea, aunque ponga su pass y su user bien se va a la pag "login.php?error=3"

pero si quito la parte del codigo que se encarga de redireccionarlo para esa pag, el codigo funciona bien :S por que hace esto??

O sea, si le quito esta parte:

elseif($username==$user AND $password!=$pass) {
header ("location: login.php?error=1");
}elseif($username!=$user AND $password==$pass) {
header ("location: login.php?error=2");
}elseif($username!=$user AND $password!=$pass) {
header ("location: login.php?error=3");

funciona bien, pero si la dejo, siempre se va para login.php?error=3, no se por que hace eso :S algun consejo??

y otra cosa, alguna idea sobre como hacer que funcione con sessiones (para evitar conflictos jeje) por que lo heintentado y como lo a veces me tira un error y aveces funciona sin los usuarios poner ningun user ni ningun pass :S

algun consejo??