Foros del Web » Programando para Internet » PHP »

Resolver problema

Estas en el tema de Resolver problema en el foro de PHP en Foros del Web. Tengo una duda que algunos creerán un poco boba pero bueno. La cosa es que cuando voy a hacer login de usuarios hago esto: Código ...
  #1 (permalink)  
Antiguo 14/06/2004, 13:05
Avatar de Reynier  
Fecha de Ingreso: noviembre-2002
Ubicación: Por ahí en algún sitio
Mensajes: 1.844
Antigüedad: 21 años, 5 meses
Puntos: 1
Resolver problema

Tengo una duda que algunos creerán un poco boba pero bueno. La cosa es que cuando voy a hacer login de usuarios hago esto:
Código PHP:
if(isset($_GET['action']) && $_GET['action']=="login" && isset($_GET['how']) && $_GET['how']=="asregistereduser"){
  
$passwd_in_db md5($_POST['passwd']);
  
$query "SELECT * FROM users WHERE login='".$_POST['login']."' AND password='".$passwd_in_db."' AND active<>0";
  
$result mysql_query($query) or die("No se ha podido ejecutar la consulta ".$query.". MySQL ha dicho: ".mysql_error());
  if(
$result){
   
CreateLogs("log","a",$query);
   
$source mysql_fetch_assoc($result);
  }else{
   
CreateLogs("err","a",$query);
   
header("Location: index.php?err=nouserselected");
  }
  if(
$source['login'] == $_POST['login'] && $source['password']==$passwd_in_db){
   
SessionStart($source['login'],$source['level']);
   
HeaderPage("5","index.php?user=".$_SESSION['nombre']."&".SID."");
  }
 } 
pero si ese usuario que intento logearse no existe entonces se me queda la pagina en blanco y ya no pasa nada. he parseado el código y me he dado cuenta de que si el usuario que intenta logearse no esta en la BD entonces $source se queda vacio (NULL). ¿Cómo puedo resolver esto?

Salu2
__________________
Ing. Reynier Pérez Mira
  #2 (permalink)  
Antiguo 14/06/2004, 13:13
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

$result es false cuando se produce un error al ejecutar la consulta. Una consulta que devuelve 0 registros es correcta, y devuelve un result de true. Para comprobar que no ha devuelto registros, usa la funcion mysql_num_rows() (www.php.net/mysql_num_rows).

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
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 05:21.