Foros del Web » Programando para Internet » PHP »

validar usuario no sale

Estas en el tema de validar usuario no sale en el foro de PHP en Foros del Web. buenas a todos, lo que necesito es que un usuario se registre, y se compare con una base de datos, ejemplo ya esta registrado, hago ...
  #1 (permalink)  
Antiguo 26/09/2012, 16:35
Avatar de fedefrankk  
Fecha de Ingreso: agosto-2007
Mensajes: 871
Antigüedad: 16 años, 8 meses
Puntos: 7
Pregunta validar usuario no sale

buenas a todos, lo que necesito es que un usuario se registre, y se compare con una base de datos, ejemplo ya esta registrado, hago lo siguiente y no sale nada..

empiezo mi documento con

Código PHP:
Ver original
  1. <?
  2.  
  3.       $res=mysql_query("select * from usuarios where usu_email='$mail' AND usu_pass='$pass'",$con) or die (mysql_error());
  4.         if ($fila = mysql_fetch_assoc($res)){
  5.                 //usuario y contraseña válidos
  6.                  
  7.                
  8.                
  9.                    $_SESSION['usunombre'] = $fila['usu_nombre'];
  10.                    $_SESSION['usumail'] = $fila['usu_email'];
  11.      
  12.                
  13.                 print $_SESSION['usu_nombre'];
  14.                
  15.                              
  16.                
  17.         }else{
  18. ...................

el print lo puse a modo de que me salga para ver el resultado.. pero me deja una hoja en blanco.. no se que estoy haciendo mal...

Muchas gracias de antemano
saludos a todos
fede
  #2 (permalink)  
Antiguo 26/09/2012, 16:37
Avatar de rodrigo791  
Fecha de Ingreso: noviembre-2009
Ubicación: Uruguay
Mensajes: 1.339
Antigüedad: 14 años, 5 meses
Puntos: 168
Respuesta: validar usuario no sale

No es if, es while, el if no es una etructura que te permita repetir sentencias.
  #3 (permalink)  
Antiguo 26/09/2012, 17:42
Avatar de fedefrankk  
Fecha de Ingreso: agosto-2007
Mensajes: 871
Antigüedad: 16 años, 8 meses
Puntos: 7
Pregunta Respuesta: validar usuario no sale

Buenas, use el if para saber si existe o no,, como hago eso con while?.. o hago primero un if y si existe hago un while?

gracias saludos
fede
  #4 (permalink)  
Antiguo 26/09/2012, 17:54
Avatar de rodrigo791  
Fecha de Ingreso: noviembre-2009
Ubicación: Uruguay
Mensajes: 1.339
Antigüedad: 14 años, 5 meses
Puntos: 168
Respuesta: validar usuario no sale

Código PHP:
Ver original
  1. if ($fila = mysql_fetch_assoc($res)){

Código PHP:
Ver original
  1. while ($fila = mysql_fetch_assoc($res)){

vos lo que tenes es $fila que es un array que te devuelve mysql_fetch_assoc, por lo tanto de alguna forma tenes que recorrerlo, con alguna estructura de control repetitiva, como while.
  #5 (permalink)  
Antiguo 26/09/2012, 22:59
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: validar usuario no sale

1- Usa <?php en lugar de <? para evitarte problemas: http://php.net/manual/es/ini.core.ph...short-open-tag
2- De preferencia deja de usar mysql y cambia a mysqli o PDO, la primera ya es considerada obsoleta.
3- De dónde toman su valor las variables $mail y $pass? que, por cierto, deberás escapar antes de ponerlas en una consulta.
4- Como esperas obtener sólo un registro, el uso de if es más adecuado que while.
__________________
- León, Guanajuato
- GV-Foto
  #6 (permalink)  
Antiguo 27/09/2012, 04:09
Avatar de Uncontroled_Duck
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Málaga [Spain]
Mensajes: 806
Antigüedad: 12 años, 11 meses
Puntos: 261
Respuesta: validar usuario no sale

Cita:
Iniciado por fedefrankk Ver Mensaje
[...]
el print lo puse a modo de que me salga para ver el resultado.. pero me deja una hoja en blanco.. no se que estoy haciendo mal...
[...]
Prueba a corregir el índice...
Código PHP:
Ver original
  1. <?
  2.  
  3. $res = mysql_query("select * from usuarios where usu_email='$mail' AND usu_pass='$pass'", $con) or die(mysql_error());
  4. if( $fila = mysql_fetch_assoc($res) )
  5. {
  6.     //usuario y contraseña válidos
  7.     $_SESSION['usunombre']/* <- ['usu_nombre'] */ = $fila['usu_nombre'];
  8.     $_SESSION['usumail'] = $fila['usu_email'];
  9.    
  10.     print $_SESSION['usu_nombre']; // <- ['usu_nombre']
  11. }
  12. else
  13. {
  14.     //...
  15. }

A lo ya comentado añado:
Utiliza en el SQL SELECT, FROM, WHERE, AND en mayúsculas, facilita la lectura.
En vez de usar *, es preferible obtener solo lo que necesitas
Código PHP:
Ver original
  1. "select * from usuarios where usu_email='$mail' AND usu_pass='$pass'"
  2. //mejor
  3. "SELECT usu_nombre, usu_email, usu_pass FROM usuarios WHERE usu_email='$mail' AND usu_pass='$pass'"

Un tema interesante a leer al respecto,
http://www.forosdelweb.com/f18/aport...a-php-1011808/

Saludos,
__________________
Todos agradeceremos que pongas el código en su respectivo Highlight
  #7 (permalink)  
Antiguo 29/09/2012, 08:29
Avatar de fedefrankk  
Fecha de Ingreso: agosto-2007
Mensajes: 871
Antigüedad: 16 años, 8 meses
Puntos: 7
Pregunta Respuesta: validar usuario no sale

Buenas a todos, gracias por sus repuestas.!!!

Disculpen la demora en contestar (intenet no anda muy bien) ,

voa a probar todos lo comentado por ustedes,

respondiendo un tema que me interesa es la seguiridad..

el mail y pass vienen de un formulario que lo envio con metodo POST,

y me interesa saber, yo tengo mysql lo unico que tengo que hacer es cambiarle por mysqli?, agregarle una i al final?

muchas gracias por la info estare preguntando nuevamente alguna inquietud
saludos
fede

Etiquetas: mysql, sql, usuarios
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 04:13.