Foros del Web » Programando para Internet » PHP »

Mostrar datos...

Estas en el tema de Mostrar datos... en el foro de PHP en Foros del Web. Después de registrarse un usuario en una base de datos, se le dá la oportunidad de modificar sus datos una vez los verifique. Así, a ...
  #1 (permalink)  
Antiguo 29/10/2007, 09:20
Avatar de andrewp  
Fecha de Ingreso: agosto-2003
Ubicación: Barcelona
Mensajes: 1.160
Antigüedad: 20 años, 8 meses
Puntos: 5
Mostrar datos...

Después de registrarse un usuario en una base de datos, se le dá la oportunidad de modificar sus datos una vez los verifique. Así, a través del siguiente Script, el usuario tendría que ver sus datos:

Cita:
$query = "SELECT * FROM usuarios " .
"WHERE user = '" . $_SESSION['user_logg'] . "' " .
"AND contrasena = (PASSWORD('" .
$_SESSION['user_contrasena'] . "'))";
$result = mysql_query($query)
or die(mysql_error());

$row = mysql_fetch_array($result);
?>
nombre: <?php echo $row['nom_user']; ?>
apellido <?php echo $row['ape_user']; ?>
email: <?php echo $row['email_user']; ?>
Esto no me genera ningun problema con Mysql, el problema es que el usuario registrado no puede ver sus datos... Es decir, no se ve nada.

De cualquier manera estoy seguro que me trae la 'session' del usuario recien registrado porque he probado con un echo $query y se muestra el usuario y el password.

En qué podría estar fallando?

Gracias por vuestra ayuda.
__________________
Andrew :P
  #2 (permalink)  
Antiguo 29/10/2007, 10:15
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 2 meses
Puntos: 81
Re: Mostrar datos...

Prueba con esto y ve si puedes buscar una respuesta que te mencione el error.
Código PHP:
<?
error_reporting
(E_ALL^E_NOTICE);
$query="SELECT * 
        FROM usuarios 
        WHERE user = '" 
$_SESSION['user_logg'] . "'
        AND contrasena = PASSWORD('" 
.$_SESSION['user_contrasena'] . "')";
echo 
"Query: (Copia y pega esto en tu mysql para ver si trae datos)<br>".$query;
$result mysql_query($query) or die("Error: ".mysql_error());
while(
$row mysql_fetch_array($result) or die("Error: ".mysql_error())){
    
$mostrar.= '
        <br>Nombre: '
.$row['nom_user'].'
        <br>Apellido '
.$row['ape_user'].'
        <br>Email: '
.$row['email_user'];
}
echo 
$mostrar;
?>
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #3 (permalink)  
Antiguo 29/10/2007, 10:44
Avatar de andrewp  
Fecha de Ingreso: agosto-2003
Ubicación: Barcelona
Mensajes: 1.160
Antigüedad: 20 años, 8 meses
Puntos: 5
Re: Mostrar datos...

Gracias Marvin por tu respuesta... De hecho no me trae ningun error, solo me dice lo siguiente:

Cita:
QUERY:
SELECT * FROM usuarios WHERE user = 'andrew' AND contrasena= PASSWORD ('123456') Error:
Donde andrew es el usuario y 123456 es la contraseña. Pero en Error no marca nada.
__________________
Andrew :P
  #4 (permalink)  
Antiguo 29/10/2007, 10:48
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 2 meses
Puntos: 81
Re: Mostrar datos...

Entonces si sale la palabra Error es porque esta cayendo en el error.

Pegaste esa consulta tal como esta en tu mysql para ver si trae datos ??

Suerte! y nos cuentas como sigues.
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #5 (permalink)  
Antiguo 29/10/2007, 11:01
Avatar de _ssx  
Fecha de Ingreso: mayo-2003
Ubicación: mX
Mensajes: 683
Antigüedad: 20 años, 11 meses
Puntos: 60
Re: Mostrar datos...

No entiendo que hace la función PASSWORD() dentro de la consulta sql A CASO es un metodo de encriptación o algo asi..??-- si no creo que deberia de ser asi..

Código PHP:
<?php
$query 
"SELECT * FROM usuarios " .
"WHERE user = '" $_SESSION['user_logg'] . "' " .
"AND contrasena = '" .$_SESSION['user_contrasena'] . "'";
$result mysql_query($query)
or die(
mysql_error());

$row mysql_fetch_array($result);
?>
nombre: <?php echo $row['nom_user']; ?>
apellido <?php echo $row['ape_user']; ?>
email: <?php echo $row['email_user']; ?>
__________________
Escribe tu código de forma que refleje, y saque a relucir,lo mejor de tu carácter personal
www.oscararzola.com/blog
Principios de un programador
  #6 (permalink)  
Antiguo 29/10/2007, 11:14
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 2 meses
Puntos: 81
Re: Mostrar datos...

Password es una funcion reservada de Mysql que genera un alfanumerico aleatorio dependiendo de la palabra dada.

Yap... estuve haciendo algunas pruebas y mira... prueba dejandole las comillas a la funcion password y sacandoselas:

SELECT PASSWORD(contrasena) FROM usuarios
SELECT PASSWORD('contrasena') FROM usuarios

Deberian ser distintos.

Prueba y nos cuentas.
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #7 (permalink)  
Antiguo 29/10/2007, 11:30
Avatar de _ssx  
Fecha de Ingreso: mayo-2003
Ubicación: mX
Mensajes: 683
Antigüedad: 20 años, 11 meses
Puntos: 60
Re: Mostrar datos...

Cita:
Iniciado por Marvin Ver Mensaje
Password es una funcion reservada de Mysql que genera un alfanumerico aleatorio dependiendo de la palabra dada.
Si hace eso. aleatoriamente como espera que su contraseña coincida :D con la que tiene en la tabla
__________________
Escribe tu código de forma que refleje, y saque a relucir,lo mejor de tu carácter personal
www.oscararzola.com/blog
Principios de un programador
  #8 (permalink)  
Antiguo 29/10/2007, 12:07
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 2 meses
Puntos: 81
Re: Mostrar datos...

Por que es aleatoria segun la palabra dada:

Si mi palabra es test = Password(campo) = 78d9048427ff2bb3 (no es esta pero es un ejemplo)

Y siempre sera eso... Me referia a que lo aleatorio depende de la palabra dada.

Suerte!
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #9 (permalink)  
Antiguo 29/10/2007, 12:17
(Desactivado)
 
Fecha de Ingreso: diciembre-2006
Mensajes: 225
Antigüedad: 17 años, 4 meses
Puntos: 1
Re: Mostrar datos...

no la conosco pero por logica marvin tiene toda la razon por q si a la hora de tu guardar le colocaste comillas y en esta consulta no le colocaste no te va a encontrar nada porq no le colocas un comprobador echo con un if .. else
  #10 (permalink)  
Antiguo 29/10/2007, 12:25
Avatar de _ssx  
Fecha de Ingreso: mayo-2003
Ubicación: mX
Mensajes: 683
Antigüedad: 20 años, 11 meses
Puntos: 60
Re: Mostrar datos...

Cita:
Iniciado por Marvin Ver Mensaje
Por que es aleatoria segun la palabra dada:

Si mi palabra es test = Password(campo) = 78d9048427ff2bb3 (no es esta pero es un ejemplo)

Y siempre sera eso... Me referia a que lo aleatorio depende de la palabra dada.

Suerte!
si, entiendo como si se usara md5 o parecidas.. sin embargo lo que habria que preguntarse es si la contraseña la guardo asi.. con PASSWORD.. o la metio directa.. por que si no estaria encriptando la contraseña y comparandola con una no encriptada..
__________________
Escribe tu código de forma que refleje, y saque a relucir,lo mejor de tu carácter personal
www.oscararzola.com/blog
Principios de un programador
  #11 (permalink)  
Antiguo 30/10/2007, 06:37
Avatar de andrewp  
Fecha de Ingreso: agosto-2003
Ubicación: Barcelona
Mensajes: 1.160
Antigüedad: 20 años, 8 meses
Puntos: 5
Re: Mostrar datos...

Bueno... Primero que todo agradeceros por vuestra ayuda. He probado las opciones que me hebéis aconsejado y sencillamente quitandole la encryptación se ha arreglado... Vamos!... me ha mostrado los datos.

En segundo lugar quiero comentaros que la opción "PASSWORD" la he estado trabajando a base de uno de los tantos libros de PHP de la edición Wiley. En sus páginas reza:

Cita:
"... La opción 'PASSWORD' la manera más fácil de trabajar sin posibilidad de riesgo técnico o legal del robo de contraseñas y estar seguro de qué contraseña tiene el usuario. En la manera más fácil de llevar a cabo bajo este procedimiento la encriptación de contraseñas en un registro. Usted puede llevara cabo este procedimiento en PHP o su propia base de datos lo puede hacer por usted. La manera que tiene Mysql para almacenar las contraseñas, por ejemplo, está encerrando la cifra en esta función incorporada llamada password ():

Cita:
INSERT INTO user_table (user, password) VALUES ('ûsername', password('$password'));
Ahora, cuando un usuario intenta loguearse, su consulta para la contraseña usa la siguiente función:

Cita:
SELECT username, password FROM user_table WHERE username= '$username' AND password = password('$password');
(/...)
Finalmente pregunto... En mi caso no hay ningún problema porque además de verificar que la contraseña sea la misma, el usuario es único en la base de datos y por tanto me arroja el resultado único después de la inscripción?

Gracias nuevamente por vuestra ayuda y espero que este pequeño aporte os ayude a agrandar vuestro conocimiento en PHP ...

Saludos
__________________
Andrew :P
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 01:00.