Foros del Web » Programando para Internet » PHP »

problema con formulario recuperar contrasena de una web

Estas en el tema de problema con formulario recuperar contrasena de una web en el foro de PHP en Foros del Web. tengo una pagina de una guarderia donde se pueden inscribir usuarios tambien tengo un formulario de recuperacion de contrasena, cuando coloco el nombre de usuario ...
  #1 (permalink)  
Antiguo 03/03/2009, 11:02
(Desactivado)
 
Fecha de Ingreso: junio-2008
Mensajes: 287
Antigüedad: 15 años, 10 meses
Puntos: 9
problema con formulario recuperar contrasena de una web

tengo una pagina de una guarderia donde se pueden inscribir usuarios
tambien tengo un formulario de recuperacion de contrasena,
cuando coloco el nombre de usuario y el email si los manda pero el problema es que si le pongo el nombre de usuario y otro que no sea el email con el que se registro de todos modos manda los datos usuario y contrasena al correo que sea.
y si coloco un nombre de usuario que no exista nada mas se queda cargando la pagina como si fuera a enviar el mensaje no marca ninguna clase de error o advertencia de que no esta registrado


coloco el script haber si me pueden ayudar

Código PHP:
<?php 
// recogemos las variables enviadas por el formulario 
$username=$_POST['username']; 
$email=$_POST['email']; 

// Conectamos a la base de datos 
$dbhost='localhost';
$dbusername='------';
$dbuserpass='------';
$dbname='------';

// Conectar a la base de datos
mysql_connect ($dbhost$dbusername$dbuserpass);
mysql_select_db($dbname) or die('No se puede seleccionar la base de datos');

// Consultamos si existe $nombreusuario + $emailusuario 
$res=mysql_query("SELECT username,password FROM usuarios WHERE username = '$username'"); 

if (
mysql_num_rows($res)==0) { 
// Si no existe, datos incorrectos y fin del proceso y volvemos al formulario de recuperacion 
header("Location:formulario.php"); 

else { 
// Si existe, buscamos en la bd 
$res=mysql_query("SELECT username,password FROM usuarios WHERE username = '$username'"); 
$row=mysql_fetch_assoc($res); 
$password=$row['password']; 

// enviamos el email de recuperacion 
$headers "MIME-Version: 1.0\r\n"
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n"
mail($email"Recuperación de usuario y contraseña""Sus datos en nuestra Base de datos  son <p><ul><li>$username</li></ul><ul><li>$password</li></ul></p>"$headers); 

?>
  #2 (permalink)  
Antiguo 03/03/2009, 11:44
Avatar de jenusys  
Fecha de Ingreso: diciembre-2008
Ubicación: Ahí mismo.
Mensajes: 216
Antigüedad: 15 años, 3 meses
Puntos: 11
Respuesta: problema con formulario recuperar contrasena de una web

¿Y dónde tienes los condicionales del mail?

// Consultamos si existe $nombreusuario + $emailusuario
$res=mysql_query("SELECT username,password FROM usuarios WHERE username = '$username' AND email = '$email'");

Ojalá y sea la solución que esperas.

Última edición por jenusys; 03/03/2009 a las 11:51
  #3 (permalink)  
Antiguo 03/03/2009, 19:53
(Desactivado)
 
Fecha de Ingreso: junio-2008
Mensajes: 287
Antigüedad: 15 años, 10 meses
Puntos: 9
Respuesta: problema con formulario recuperar contrasena de una web

muchas gracias ese era el error pero ahora porque no marca algun error cuando no existe el nombre o email de usuario se queda cargando como si lo estuviera enviando
gracias...



Cita:
Iniciado por jenusys Ver Mensaje
¿Y dónde tienes los condicionales del mail?

// Consultamos si existe $nombreusuario + $emailusuario
$res=mysql_query("SELECT username,password FROM usuarios WHERE username = '$username' AND email = '$email'");

Ojalá y sea la solución que esperas.
  #4 (permalink)  
Antiguo 03/03/2009, 20:54
Avatar de argy  
Fecha de Ingreso: octubre-2007
Ubicación: Longitud 75º Latitud 18º Sur
Mensajes: 614
Antigüedad: 16 años, 5 meses
Puntos: 18
Respuesta: problema con formulario recuperar contrasena de una web

deberías de utilizar mysql_num_rows() ==1(porque el usuario es unico), para poder saber que realmente se ha encontrado el usuario y q se le va a enviar un mail, en caso contrario(no hay usuario), muestras un mensaje.

.
.
.
$result = mysql_query("consulta", $link);
Cita:
if($num_rows = mysql_num_rows($result)==1)
{
//aqui pones el codigo que envia el mensaje;
}
else
{
//mensaje de error.
}
__________________
Software libre para un mundo libre.

Eventualmente en el foro.
  #5 (permalink)  
Antiguo 04/03/2009, 10:49
(Desactivado)
 
Fecha de Ingreso: junio-2008
Mensajes: 287
Antigüedad: 15 años, 10 meses
Puntos: 9
Respuesta: problema con formulario recuperar contrasena de una web

resuelto muchas gracias ya esta listo


Cita:
Iniciado por argy Ver Mensaje
deberías de utilizar mysql_num_rows() ==1(porque el usuario es unico), para poder saber que realmente se ha encontrado el usuario y q se le va a enviar un mail, en caso contrario(no hay usuario), muestras un mensaje.

.
.
.
$result = mysql_query("consulta", $link);
  #6 (permalink)  
Antiguo 04/03/2009, 10:58
Avatar de cesarpunk  
Fecha de Ingreso: enero-2008
Ubicación: Lima
Mensajes: 943
Antigüedad: 16 años, 3 meses
Puntos: 9
Respuesta: problema con formulario recuperar contrasena de una web

hola disculpa si me meta, pero yo te recomendaria no recuperar las contraseñas, poner esos datos en md5 y si se le pierde la contraseña le generas otra y se la envias... solo para inicar la seguridad en tu web , saludos
__________________
Quitenme la vida pero no la bebida.
  #7 (permalink)  
Antiguo 05/03/2009, 11:37
(Desactivado)
 
Fecha de Ingreso: junio-2008
Mensajes: 287
Antigüedad: 15 años, 10 meses
Puntos: 9
Sonrisa Respuesta: problema con formulario recuperar contrasena de una web

haber como esta eso explicate!!
un saludo


Cita:
Iniciado por cesarpunk Ver Mensaje
hola disculpa si me meta, pero yo te recomendaria no recuperar las contraseñas, poner esos datos en md5 y si se le pierde la contraseña le generas otra y se la envias... solo para inicar la seguridad en tu web , saludos
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:15.