Foros del Web » Programando para Internet » PHP »

Ver si hay laguna entrada "x" en mysql

Estas en el tema de Ver si hay laguna entrada "x" en mysql en el foro de PHP en Foros del Web. Buenas, ando haciendo un sist de login y registro de usuarios, aca les dejo una parte del script (hata aca hice, porque me tiro error): ...
  #1 (permalink)  
Antiguo 22/06/2003, 14:01
Avatar de Sav1989  
Fecha de Ingreso: junio-2003
Ubicación: Cap Fed | Colegiales
Mensajes: 50
Antigüedad: 20 años, 10 meses
Puntos: 0
Pregunta Ver si hay laguna entrada "x" en mysql

Buenas, ando haciendo un sist de login y registro de usuarios, aca les dejo una parte del script (hata aca hice, porque me tiro error):

Código PHP:
<?
/*
Archivo de logueo registro de usuarios a la Web, no al foro
Script por Sav1989
*/
if(isset($loguearme)){
$idreg sqlcon();
mysql_select_db($db,$idreg);
$regcmdsql "SELECT * FROM web_usuarios WHERE name=$loginuser AND pass=$passuser";
    
$resultreg mysql_query($regcmdsql,$idreg);
    while(
$rowreg mysql_fetch_array($resultreg)){
        if(
count($rowreg) != 0){
        
$login1 "Gracias por Loguearse".$loginuser;
        
setcookie("loginuser","$liginuser",time()+2419200);
        
setcookie("passuser","$passuser",time()+2419200);
        }
        else{
        
$login1 "Login incorrecto, intente nuevamente.";
        }
    }
//Terminamos de Comprobar y poner las cookies
exit();
}
if(isset(
$_COOKIE['loginuser']) && isset($_COOKIE['passuser'])){
//Si hay cookies user y pass
    
$loginusr $_COOKIE['loginuser'];
    
$passusr $_COOKIE['passuser'];
    
$idreg sqlcon(); //Conectamos a mySQL
    
mysql_select_db($db,$idreg);
    
$regcmdsql "SELECT * FROM web_usuarios WHERE name=$loginusr && pass=$passusr";
    
$resultreg mysql_query($regcmdsql,$idreg);
    while(
$rowreg mysql_fetch_array($resultreg)){
        if(
count($rowreg) != 0){
        
$login "Bienvenido nuevamente".$loginuser;
        }
        else{
        
$login "Bienvenido Visitante";
        }
    }
}
else{
?>
<center>Ingresar o <a href="&cmd=register">Registrar</a>:
  <table border="1" cellpadding="3" cellspacing="0" style="border-collapse: collapse" bordercolor="#cfcfcf" id="AutoNumber1">
    <form method="post" action="index.php?id=register.php">
<tr>
      <td height="15"><b>Nick: </b> </td>
      <td height="15"><input type="Text" name="loginuser" size="10"></td>
    </tr>
    <tr>
      <td height="15"><b>Password: </b></td>
      <td height="15"><input type="Password" name="passuser" size="12"></td>
    </tr>
    <tr>
    <td height="15" colspan="2" align="center"><input type="submit" name="loguearme" value="Ingresar"></td>
    </tr>
  </table>
</center>
<?    
}
?>



Anda supuestamente bien (no lo he testeado todo completo), y al meter un login incorrecto, me tira este error:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\appserv\www\includes\register.php on line 11


Me imagino que no puede hacer muysql_fetch_array si no hay datos, y como seria la funcion sino? o ocmo me dirian que haga esa parte para que ande bien? Graicas a todos.


Edit: la funcion sqlcon(); esta incluida en el index, donde incluire este file. que es el register.php; por su puesto lo testee incluido en el index.php.
  #2 (permalink)  
Antiguo 22/06/2003, 14:17
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

Lo que pasa es que el parametro que pasas a mysql_fetch_array() es incorrecto. Como el parametro que le pasas es lo que devuelve mysql_query(), es que ha ocurrido un error en MySQL al intentar ejecutar tu consulta. Mira en el manual mysql_error() (www.php.net/mysql-error) para ver como mostrar el mensaje de error de MySQL.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 22/06/2003, 14:31
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Usa preferentemente ' comillas simples ' en las llamadas a tus variables ...

Código PHP:
$regcmdsql "SELECT * FROM web_usuarios WHERE name='$loginuser' AND pass='$passuser'"
Lo que comenta josemi ... y en general para detectar errores de SQL o de conexión usa la estructura:

Código PHP:
$resultreg mysql_query($regcmdsql,$idreg) or die (mysql_error()); 
Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #4 (permalink)  
Antiguo 22/06/2003, 14:56
Avatar de Sav1989  
Fecha de Ingreso: junio-2003
Ubicación: Cap Fed | Colegiales
Mensajes: 50
Antigüedad: 20 años, 10 meses
Puntos: 0
Bue, eso lo arregle, ahora lo que sigio es esto:

Código PHP:
<?
/*
Archivo de logueo registro de usuarios a la Web, no al foro
Script por Sav1989
*/
if(isset($loguearme)){
$idreg sqlcon();
mysql_select_db($db,$idreg);
$regcmdsql "SELECT * FROM web_usuarios WHERE name='$loginuser' && password='$passuser'";
    
$resultreg mysql_query($regcmdsql,$idreg) or die(mysql_error());
    while(
$rowreg mysql_fetch_array($resultreg)){
        if(
count($rowreg) != 0){
        
setcookie("loginusercookie",'$loginuser',time()+2419200);
        
setcookie("passusercookie",'$passuser',time()+2419200);
        
$login1 "Gracias por Loguearse".$_COOKIE['loginuser'];
        }
        else{
        
$login1 "Login incorrecto, intente nuevamente.";
        }
    }
//Terminamos de Comprobar y poner las cookies
exit();
?>
Y me tira estos errores cuando me "logueo" con algo Valido

Warning: Cannot modify header information - headers already sent by (output started at c:\appserv\www\includes\menu.php:13) in c:\appserv\www\includes\register.php on line 13

Warning: Cannot modify header information - headers already sent by (output started at c:\appserv\www\includes\menu.php:13) in c:\appserv\www\includes\register.php on line 14

Notice: Undefined index: loginuser in c:\appserv\www\includes\register.php on line 15






Alguna sugerencia? ayudita? thasnk anticipadamente.
  #5 (permalink)  
Antiguo 22/06/2003, 14:58
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Delante de tu setcookie() .. NO peude existir náda de HTML por delante .. ni espacios ni saltos de línea antes de <? o despues de ?> si lo llamas bajo un "include" a ese código ..

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #6 (permalink)  
Antiguo 22/06/2003, 15:22
Avatar de Sav1989  
Fecha de Ingreso: junio-2003
Ubicación: Cap Fed | Colegiales
Mensajes: 50
Antigüedad: 20 años, 10 meses
Puntos: 0
Muchas gracias, lo he reuelto (para los que leen esto, y no entienden como hacerlo) de esta forma:
la ultima parte que postee( que identifica el script y pone las cookies), la meti en otro archivo, y ese archivo lo inclui en el index; antes de mandar informacion html al server.. Eso me permitio settear las cookies.



Muchisimas gracias Cluster!
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 19:03.