Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Error al comprobar validación de usuario

Estas en el tema de Error al comprobar validación de usuario en el foro de PHP en Foros del Web. Hola gente; cuando un usuario hace "login" en mi test-web, primero compruebo si su cuenta está verificada. Esa verificación llega por mail y funciona bien. ...
  #1 (permalink)  
Antiguo 20/03/2015, 01:19
Avatar de NueveReinas  
Fecha de Ingreso: septiembre-2013
Ubicación: No tan Buenos Aires
Mensajes: 1.101
Antigüedad: 10 años, 8 meses
Puntos: 145
Pregunta Error al comprobar validación de usuario

Hola gente;

cuando un usuario hace "login" en mi test-web, primero compruebo si su cuenta está verificada. Esa verificación llega por mail y funciona bien.

¿Cómo lo verifico?

Código PHP:
Ver original
  1. <?php
  2.  
  3. // Carga la configuración
  4. $config = parse_ini_file('config.ini');  
  5.  
  6. // Conexión con los datos del 'config.ini'
  7. $connection = mysqli_connect('localhost',$config['username'],$config['password'],$config['dbname']);
  8.  
  9. // Si la conexión falla, aparece el error
  10. if($connection === false) {
  11.     return mysqli_connect_error();
  12. }
  13.  
  14. $tuID = $_SESSION['usuario'];
  15. $nolog = "";
  16.  
  17. //Comprueba si la sesión está autenticada
  18. if(isset($_SESSION['usuario']) and $_SESSION['estado'] == 'Autenticado')
  19. {
  20. //Si el usuario esta logueado
  21.    
  22. /////////////////////////////////////////// Conecta a la BD y comprueba si el usuario está validado
  23.  
  24. $consulta = "SELECT email FROM usuarios WHERE validated=1";
  25.  
  26. $resultado = mysqli_query($connection, $consulta) or die(mysql_error());
  27. $datos = mysqli_fetch_array($resultado);
  28.  
  29. $entrar= "";
  30.  
  31. if($datos['validated'])
  32. {
  33.     $entrar = "<h1>Cuenta no verificada</h1> <p>Por favor, revisa tu email (".$tuID.")y verifica tu cuenta.</p>";
  34.     $verdatos = $datos['validated'];
  35. }
  36. else
  37. {
  38.     $entrar = "<h1>Bienvenido/a ".$tuID."</h1> <p>Serás redireccionado/a en 5 segundos.</p>
  39.     <!--<script>
  40.     window.setTimeout(function(){
  41.         window.location.href = 'http://www.ejemplo.com';
  42.    }, 5000);
  43.     </script>-->
  44.     ";
  45.     $verdatos = $datos['validated'];
  46.     ;
  47. };
  48.    
  49. ///////////////////////////////////////////
  50.    
  51. }
  52. else //Si el usuario NO está logueado
  53. {
  54.     $nolog = "¡Bienvenido desconocido/a";
  55.     $entrar = 'No tienes acceso a esta página. <br>
  56.     Puedes <a href="http://www.ejemplo.com/entrar" target="_self">entrar</a> o <a href="http://www.ejemplo.com/registro" target="_self">registrarte</a>.
  57.     ';
  58.     $incorrecto = "";
  59. }
  60.  
  61. ?>

El problema está entre las líneas 23 y 50.

Cuando imprimo "$datos['validated']" no me aparece nada, sin embargo, si imprimo "$datos" solo me dice Array.

Por lo tanto; haga lo que haga me da la cuenta por validada.

¿Alguna ayudita?
  #2 (permalink)  
Antiguo 20/03/2015, 01:28
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Error al comprobar validación de usuario

En el "SELECT email ..." estás seleccionando únicamente la columna email, así que por eso no puedes leer la otra propiedad.

Debes seleccionar también la propiedad validated si quieres acceder a ella.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 20/03/2015, 01:32
Avatar de NueveReinas  
Fecha de Ingreso: septiembre-2013
Ubicación: No tan Buenos Aires
Mensajes: 1.101
Antigüedad: 10 años, 8 meses
Puntos: 145
Pregunta Respuesta: Error al comprobar validación de usuario

Cita:
Iniciado por pateketrueke Ver Mensaje
En el "SELECT email ..." estás seleccionando únicamente la columna email, así que por eso no puedes leer la otra propiedad.

Debes seleccionar también la propiedad validated si quieres acceder a ella.
¿Así?

Código PHP:
Ver original
  1. $consulta = "SELECT email AND validated FROM usuarios WHERE validated=1";
  #4 (permalink)  
Antiguo 20/03/2015, 01:40
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Error al comprobar validación de usuario

¿Estás tratando de adivinar o cómo?

Creo que deberías consultar una referencia de SQL al respecto.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 20/03/2015, 01:42
Avatar de NueveReinas  
Fecha de Ingreso: septiembre-2013
Ubicación: No tan Buenos Aires
Mensajes: 1.101
Antigüedad: 10 años, 8 meses
Puntos: 145
Respuesta: Error al comprobar validación de usuario

Cita:
Iniciado por pateketrueke Ver Mensaje
¿Estás tratando de adivinar o cómo?

Creo que deberías consultar una referencia de SQL al respecto.
Te agradezco el consejo, pero realmente necesito saber qué problema hay con mi código y como solucionarlo.

  #6 (permalink)  
Antiguo 20/03/2015, 02:23
Avatar de NueveReinas  
Fecha de Ingreso: septiembre-2013
Ubicación: No tan Buenos Aires
Mensajes: 1.101
Antigüedad: 10 años, 8 meses
Puntos: 145
De acuerdo Respuesta: Error al comprobar validación de usuario

Solucionado;

No estaba buscando correctamente.

En lugar de
Código PHP:
Ver original
  1. $consulta = "SELECT email FROM usuarios WHERE validated=1";

debe ser

Código PHP:
Ver original
  1. $consulta = "SELECT email,validated FROM usuarios WHERE email='$tuID' ";

y

Código PHP:
Ver original
  1. $tuID = $_SESSION['usuario'];

Y ya me voy a dormir.

Etiquetas: mysql, registro, select, sql, usuario, 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 05:39.