elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  MySQL no me muestra el valor? Osea khé?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: MySQL no me muestra el valor? Osea khé?  (Leído 2,614 veces)
venadHD

Desconectado Desconectado

Mensajes: 94

Donde hay hackers, tambien hay crackers.


Ver Perfil WWW
MySQL no me muestra el valor? Osea khé?
« en: 24 Octubre 2015, 12:45 pm »

Esta ultima semana estuve desarrollando un panel de control para unos servidores y al testar la parte de 'Mi cuenta' veo que me sale el usuario, pero no el 'email', y está hecho de la misma forma que el usuario, osea, no entiendo porque no sale

En el proceso de login es donde se asigna la sesion
Código
  1. $haspass = //ENCRIPTACION DE CONTRASENA
  2. $db = new mysqli ("", "", "", "");
  3. $query = $db->query("SELECT * FROM usuarios WHERE usuario='".$_POST['usuario']."' LIMIT 1");
  4. if ($query->num_rows > 0) {
  5. if ($query->fetch_assoc()['pswd'] == $haspass) {
  6. $_SESSION['***.***'] = $_POST['usuario'];
  7. $_SESSION['***.***'] = $haspass;
  8. $_SESSION['emailClient'] = $query->fetch_assoc()['email']; //Luego en el siguiente script, no muestra nada
  9. $_SESSION['login'] = true;
  10. $db->close();
  11. unset($db);
  12. logsec();
  13. } else {
  14. $db->close();
  15. unset($db);
  16. logerror("Contraseña incorrecta");
  17. }
  18. } else {
  19. $db->close();
  20. unset($db);
  21. logerror("El usuario no existe");
  22. }

Código
  1. <html style="background-color:#eee;">
  2. <head>
  3. <title>Mi cuenta - Cydrio cPanel</title>
  4. <link rel="stylesheet" href="bs3.3.5/css/bootstrap.min.css">
  5. <meta name="viewport" content="width=device-width, initial-scale=1">
  6. </head>
  7. <body class="container" style="background-color:#eee;">
  8. <?php include('cpanel.header.php'); ?>
  9. <table class='table table-bordered table-hover table-striped'>
  10. <tbody>
  11. <tr>
  12. <td style="width:25%;">Tu usuario</td>
  13. <td style="width:75%;"><?php echo($_SESSION['***.***']); //Esto lo muestra bien
  14. ?></td>
  15. </tr>
  16. <tr>
  17. <td>Tu email</td>
  18. <td><?php echo($_SESSION['emailClient']); //Esto ya no
  19. ?></td>
  20. </tr>
  21. </tbody>
  22. </table>
  23. </body>
  24. </html>

Puse la depuracion de errores, pero nada, es como si tuviera una string en blanco, he revisado la base de datos por si acaso, y el valor existe 'ejemplo@ejemplo.com'


« Última modificación: 30 Octubre 2015, 20:12 pm por #!drvy » En línea

T. Collins

Desconectado Desconectado

Mensajes: 206


Ver Perfil
Re: MySQL no me muestra el valor? Osea khé?
« Respuesta #1 en: 24 Octubre 2015, 14:03 pm »

Busca bien que hace el método fetch_assoc()


En línea

venadHD

Desconectado Desconectado

Mensajes: 94

Donde hay hackers, tambien hay crackers.


Ver Perfil WWW
Re: MySQL no me muestra el valor? Osea khé?
« Respuesta #2 en: 24 Octubre 2015, 15:30 pm »

Con la contraseña funciona, por eso digo que no tiene mucho sentido que no lo haga en el email, osea, es el mismo metodo, no?
En línea

T. Collins

Desconectado Desconectado

Mensajes: 206


Ver Perfil
Re: MySQL no me muestra el valor? Osea khé?
« Respuesta #3 en: 24 Octubre 2015, 17:00 pm »

No se que hace tu función fetch_assoc(), pero normalmente cada vez que se llama avanza una fila en la tabla de la base de datos. Si solo tienes una fila, la segunda vez que haces fetch_assoc estas pidiendo el mail de una fila que no existe. Prueba si funciona esto:

Código
  1. $resp = $query->fetch_assoc();
  2.  
  3. if ($resp['pswd'] == $haspass) {
  4.  
  5. $_SESSION['emailClient'] = $resp['email'];
En línea

MinusFour
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.529


I'm fourth.


Ver Perfil WWW
Re: MySQL no me muestra el valor? Osea khé?
« Respuesta #4 en: 24 Octubre 2015, 17:17 pm »

Código
  1. $query->fetch_assoc();

Es un metodo de MySQLi Result:

http://php.net/manual/en/mysqli-result.fetch-assoc.php

El comportamiento para las hileras en el result set es tal cual describes (cada vez que lo llamas, regresa la siguiente hilera o null si no hay mas hileras para retornar).

Si tienes un result set asi (el resultado de tu query):
Código:
miusuario | contraseña | pass

Con fetch_assoc extraes la primera hilera a un arreglo associativo (las llaves son los campos de la tabla) y dejas el result set asi:

Código:
 

Vuelves a hacer fetch_assoc y como no hay siguiente hilera, el resultado es null:

Entonces:
Con la contraseña funciona, por eso digo que no tiene mucho sentido que no lo haga en el email, osea, es el mismo metodo, no?

Es el mismo metodo si, pero la funcion muta el estado del result set cada vez que invocas la función. Por lo que en cada invocación, el resultado puede ser distinto.

Edit: De hecho, no estoy seguro si el comportamiento es tal cual así. Es probable que el result set no sea mutado y simplemente dependa de un puntero interno del result set. En ese caso, el puntero simplemente avanza una fila cada que llames a la función.
« Última modificación: 24 Octubre 2015, 20:02 pm por MinusFour » En línea

venadHD

Desconectado Desconectado

Mensajes: 94

Donde hay hackers, tambien hay crackers.


Ver Perfil WWW
Re: MySQL no me muestra el valor? Osea khé?
« Respuesta #5 en: 25 Octubre 2015, 01:04 am »

Código
  1. $query->fetch_assoc();

Es un metodo de MySQLi Result:

http://php.net/manual/en/mysqli-result.fetch-assoc.php

El comportamiento para las hileras en el result set es tal cual describes (cada vez que lo llamas, regresa la siguiente hilera o null si no hay mas hileras para retornar).

Si tienes un result set asi (el resultado de tu query):
Código:
miusuario | contraseña | pass

Con fetch_assoc extraes la primera hilera a un arreglo associativo (las llaves son los campos de la tabla) y dejas el result set asi:

Código:
 

Vuelves a hacer fetch_assoc y como no hay siguiente hilera, el resultado es null:

Entonces:
Es el mismo metodo si, pero la funcion muta el estado del result set cada vez que invocas la función. Por lo que en cada invocación, el resultado puede ser distinto.

Edit: De hecho, no estoy seguro si el comportamiento es tal cual así. Es probable que el result set no sea mutado y simplemente dependa de un puntero interno del result set. En ese caso, el puntero simplemente avanza una fila cada que llames a la función.

Probé a hacer eso mediante variable, es decir, sin hacer el llamamiento a la funcion de cada vez, y funcionó, pero, habría alguna forma de no usar una variable?, es decir, aunque llame a la funcion dos veces, que sea el mismo resultado? [es una curiosidad por optimizar, pero bue.. :D {el fantasmita mita mita}]

Código
  1. $fassoc = $query->fetch_assoc();
  2. if ($fassoc['**'] == $haspass) {
  3. $_SESSION['**.**'] = $_POST['usuario'];
  4. $_SESSION['**.**'] = $haspass;
  5. $_SESSION['**.**'] = $fassoc['cEmail']);
En línea

geshiro

Desconectado Desconectado

Mensajes: 178


Ver Perfil
Re: MySQL no me muestra el valor? Osea khé?
« Respuesta #6 en: 25 Octubre 2015, 21:02 pm »

porque no usas la varible que asignas del password = sha1(password); asi la encriptas mas facil
En línea

venadHD

Desconectado Desconectado

Mensajes: 94

Donde hay hackers, tambien hay crackers.


Ver Perfil WWW
Re: MySQL no me muestra el valor? Osea khé?
« Respuesta #7 en: 25 Octubre 2015, 22:45 pm »

porque no usas la varible que asignas del password = sha1(password); asi la encriptas mas facil
Perdería todo el salt que le pongo, ademas de ser sha1 un metodo criptografico obsoleto
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
MySQL no me muestra mensajes de errores
Bases de Datos
Aikanáro Anário 1 3,746 Último mensaje 28 Marzo 2012, 11:52 am
por el-brujo
no muestra valor input
Desarrollo Web
kakashi20 1 2,130 Último mensaje 13 Junio 2013, 18:21 pm
por kakashi20
No muestra el valor de mi variable javascript
Desarrollo Web
SrTrp 1 1,770 Último mensaje 22 Octubre 2017, 19:27 pm
por SrTrp
Dev-C++ no muestra el valor esperado
Programación C/C++
snoopty 5 5,532 Último mensaje 1 Septiembre 2021, 12:41 pm
por Eternal Idol
La propiedad corta no muestra su valor en Writeline
.NET (C#, VB.NET, ASP)
DonPilin 1 3,129 Último mensaje 23 Enero 2023, 19:16 pm
por Locura_23
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines