Foros del Web » Programando para Internet » PHP »

Problema con la recuperación de contraseña de ususario en PHP

Estas en el tema de Problema con la recuperación de contraseña de ususario en PHP en el foro de PHP en Foros del Web. hola, buenas tardes!! soy nueva en lo q respecta en php x lo que algunas cosas no me salen y es por eso q estoy ...
  #1 (permalink)  
Antiguo 05/04/2011, 10:21
 
Fecha de Ingreso: marzo-2011
Ubicación: bs as
Mensajes: 26
Antigüedad: 13 años, 1 mes
Puntos: 0
Problema con la recuperación de contraseña de ususario en PHP

hola, buenas tardes!!
soy nueva en lo q respecta en php x lo que algunas cosas no me salen y es por eso q estoy aca pidiendo ayudaaaaa!! asiq voy directamente al grano de mis cuestión:
estoy queriendo lograr q un usuario pueda acceder a su contraseña luego de ingresar su email en un formulario el cual lo verifica en la base de datos y si coincide con el mail q ingreso en el momento de registrarse, se reenvie automáticamente un mail a dicho usuario brindándole su contraseña, usuario y nombre.

Les paso el código (el problema q tengo con dicho cód. es q aunq ponga un mail q se encuentra en la base de datos, la pag me devuelve q no está dicho mail en la BD por ende no envia el mail al usuario) disculpen mi ignorancia , pero no logro descifrar cual es el problema. Desde ya muchisimas gracias!!

Código PHP:
Ver original
  1. $usuario=$_POST['usuario'];
  2. $email=$_POST['email'];
  3.  
  4. $con = mysql_connect("localhost","yo","****");
  5. $db = mysql_select_db("clientes_registro",$con);
  6. if(!$db) {
  7. die("No se pudo establecer conexión con la base de datos");
  8. }
  9.  
  10. $res = mysql_query("SELECT * FROM usuarios WHERE email='".$email."'");
  11.  if(mysql_num_rows($res)==0) {
  12. echo "No se encontro el usuario en la base de datos";
  13. }
  14. else {
  15. echo "Los datos del usuario se  han enviado al mail especificado. Muchas gracias.";
  16.  
  17. $res = mysql_query("SELECT * FROM usuarios WHERE email='".$email."'");
  18. $row = mysql_fetch_assoc($res);
  19. $contrasena=$row ['contrasena'];
  20. $usuario=$row ['usuario'];
  21. $para = $row['email'];
  22.  
  23. $headers = "MIME-Version: 1.0\r\n";
  24. $headers = "Content-type: text/html; charset=iso-8859-1";
  25. $headers .= "From: Moppa website <$remitente>\r\n";
  26. $header = "X-Mailer: PHP/" . phpversion() . " \r\n";
  27.  
  28. $mensaje = "Este mensaje fue enviado desde Moppa Website \r\n";
  29. $mensaje = "Tu usuario es ".$row['usuario']."\r\n";
  30. $mensaje =  "Tu contraseña es ".$row['contrasena']."\r\n";
  31.  
  32. $asunto = "Recuperación de datos del usuario '".$usuario."'";
  33.  
  34. mail($para, $asunto, utf8_decode($mensaje), "From: $de_email");
  35.  }
  36.  mysql_close($con);
  #2 (permalink)  
Antiguo 05/04/2011, 10:28
Avatar de Nano_  
Fecha de Ingreso: febrero-2006
Ubicación: Bogotá, Colombia
Mensajes: 1.866
Antigüedad: 18 años, 2 meses
Puntos: 96
Respuesta: Problema con la recuperación de contraseña de ususario en PHP

Saludos

Inicialmente lo que debes hacer es imprimir la consulta y ejecutarla en un cliente mysql o el phpmyadmin.

Te envió el código con unos pequeños y ajustes comentarios para que los revises

Código PHP:
Ver original
  1. <?php
  2.  
  3. $usuario = $_POST['usuario'];
  4. $email = $_POST['email'];
  5.  
  6. $con = mysql_connect("localhost", "yo", "****");
  7. $db = mysql_select_db("clientes_registro", $con);
  8. if (!$db) {
  9.     die("No se pudo establecer conexi&oacute;n con la base de datos");
  10. }
  11.  
  12. $sqlEmail="SELECT * FROM usuarios WHERE email='" . $email . "'";
  13. echo $sqlEmail;
  14. $res = mysql_query($sqlEmail,$con) or die ("No se ejecuto la consulta".mysql_error());//Indicar variable de conexion $con y mensaje de error si se llega a presentar en la consulta
  15. if (mysql_num_rows($res) == 0) {
  16.     echo "No se encontro el usuario en la base de datos";
  17. } else {
  18.     echo "Los datos del usuario se  han enviado al mail especificado. Muchas gracias.";
  19.     //No es necesario que vuelvas a realizar la consulta
  20.     //$res = mysql_query("SELECT * FROM usuarios WHERE email='" . $email . "'");//No
  21.     $row = mysql_fetch_assoc($res);
  22.     $contrasena = $row ['contrasena'];
  23.     $usuario = $row ['usuario'];
  24.     $para = $row['email'];
  25.  
  26.     $headers = "MIME-Version: 1.0\r\n";
  27.     $headers = "Content-type: text/html; charset=iso-8859-1";
  28.     $headers .= "From: Moppa website <$remitente>\r\n";
  29.     $header = "X-Mailer: PHP/" . phpversion() . " \r\n";
  30.  
  31.     $mensaje = "Este mensaje fue enviado desde Moppa Website \r\n";
  32.     $mensaje = "Tu usuario es " . $row['usuario'] . "\r\n";
  33.     $mensaje = "Tu contraseña es " . $row['contrasena'] . "\r\n";
  34.  
  35.     $asunto = "Recuperación de datos del usuario '" . $usuario . "'";
  36.  
  37.     mail($para, $asunto, utf8_decode($mensaje), "From: $de_email");
  38. }
  39. ?>
__________________
:.:Nano.:: @nano_hard - Retornando al foro
  #3 (permalink)  
Antiguo 05/04/2011, 10:30
Avatar de Bytevamp  
Fecha de Ingreso: junio-2005
Ubicación: /var/www/
Mensajes: 789
Antigüedad: 18 años, 10 meses
Puntos: 7
Respuesta: Problema con la recuperación de contraseña de ususario en PHP

Y otra cosa, supongo que lo habras revisado, pero a veces pasamos por alto cosas obvias, comprueba que envias los datos mediante "post " y no "get".

Saludos.
__________________
"zankius veri mach" a todos los que me habeis ayudado.
carteles para inmobiliarias || alquiler de coches
  #4 (permalink)  
Antiguo 05/04/2011, 10:44
 
Fecha de Ingreso: marzo-2011
Ubicación: bs as
Mensajes: 26
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: Problema con la recuperación de contraseña de ususario en PHP

hola chicos!! muchas gracias x contestar tan rápido, con respecto a la forma de enviar los datos, si es "post". ahora el tema es q me sale esto

SELECT * FROM usuarios WHERE email=''No se encontro el usuario en la base de datos

muchisimas gracias!!!
  #5 (permalink)  
Antiguo 05/04/2011, 10:48
Avatar de Nano_  
Fecha de Ingreso: febrero-2006
Ubicación: Bogotá, Colombia
Mensajes: 1.866
Antigüedad: 18 años, 2 meses
Puntos: 96
Respuesta: Problema con la recuperación de contraseña de ususario en PHP

Saludos alepa

Esta segura que el campo del formulario se llama email? de igual manera revisa si el campo usuario no esta llegando vació también.
__________________
:.:Nano.:: @nano_hard - Retornando al foro
  #6 (permalink)  
Antiguo 05/04/2011, 10:59
 
Fecha de Ingreso: marzo-2011
Ubicación: bs as
Mensajes: 26
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: Problema con la recuperación de contraseña de ususario en PHP

ya está muchas gracias!!! estuve casi 2 días tratando de hacerlo. Ya se envia el mail al usuario q solicita la contraseña .
Ahora el problema es que en la pag sigue apareciendo esta leyenda

SELECT * FROM usuarios WHERE email='[email protected]'Los datos del usuario se han enviado al mail especificado. Muchas gracias.

como puedo evitar q aparezca (SELECT * FROM usuarios WHERE email='[email protected])

muchisimas gracias
saludos
  #7 (permalink)  
Antiguo 05/04/2011, 11:04
Avatar de Nano_  
Fecha de Ingreso: febrero-2006
Ubicación: Bogotá, Colombia
Mensajes: 1.866
Antigüedad: 18 años, 2 meses
Puntos: 96
Respuesta: Problema con la recuperación de contraseña de ususario en PHP

Saludos

Cuando tu indicas echo es para que imprima en pantalla. Solamente debes quitar la siguiente:

Código PHP:
Ver original
  1. echo $sqlEmail;

Que utilizamos para verificar como se estaba construyendo la sentencia sql.
__________________
:.:Nano.:: @nano_hard - Retornando al foro
  #8 (permalink)  
Antiguo 05/04/2011, 11:08
 
Fecha de Ingreso: marzo-2011
Ubicación: bs as
Mensajes: 26
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: Problema con la recuperación de contraseña de ususario en PHP

listooooo, muchas gracias por ayudarme!!!
saludos!!

Etiquetas: contraseña, ususario
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 23:07.