Comunidad de diseño web y desarrollo en internet online

problema con formulario recuperar contrasena de una web

Citar            
MensajeEscrito el 03 Mar 2009 05:06 pm
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); 
} 
?> 

Por cher1_7

55 de clabLevel



 

msie7
Citar            
MensajeEscrito el 04 Mar 2009 03:13 am
primero que todo, la concatenación de las cadenas esta mal hecha

Mal:

Código :

$res=mysql_query("SELECT username,password FROM usuarios WHERE username = '$username'"); 


Bien:

Código :

$res=mysql_query("SELECT username,password FROM usuarios WHERE username = '.$username.'"); 


Segundo, para que no le mande el e-mail, es necesario que restrinjas más la consulta:

Código :

$res=mysql_query("SELECT username,password FROM usuarios WHERE username = '.$username.' AND email='.$email.'"); 


Suponiendo que el nombre de la columna donde guardas la dirección del correo con que se registro se llama email.

De todos modos, veo que haces la misma consulta dos veces: una para ver si hay registros, y otra para sacar los datos y enviar el correo, esta puede quedar en una sola.

Por ShotoKan

45 de clabLevel



Genero:Masculino  

chrome
Citar            
MensajeEscrito el 04 Mar 2009 03:17 am
Resuelto muchas gracias...
eres muy amable ya aprendi algo nuevo gracias de nuevo termine mi base con recuperacion de contrasena
si quieres puedes registrarte haber si esta bien y recuperar tu contrasena haber si lo hice bien gracias...


ShotoKan escribió:

primero que todo, la concatenación de las cadenas esta mal hecha

Mal:

Código :

$res=mysql_query("SELECT username,password FROM usuarios WHERE username = '$username'"); 


Bien:

Código :

$res=mysql_query("SELECT username,password FROM usuarios WHERE username = '.$username.'"); 


Segundo, para que no le mande el e-mail, es necesario que restrinjas más la consulta:

Código :

$res=mysql_query("SELECT username,password FROM usuarios WHERE username = '.$username.' AND email='.$email.'"); 


Suponiendo que el nombre de la columna donde guardas la dirección del correo con que se registro se llama email.

De todos modos, veo que haces la misma consulta dos veces: una para ver si hay registros, y otra para sacar los datos y enviar el correo, esta puede quedar en una sola.

Por cher1_7

55 de clabLevel



 

msie7
Citar            
MensajeEscrito el 04 Mar 2009 03:18 am
perdon no deje la pagina

http://www.chicharrines.net/new_image/principal.html

Por cher1_7

55 de clabLevel



 

msie7
Citar            
MensajeEscrito el 04 Mar 2009 09:43 pm
mal

$res=mysql_query("SELECT username,password FROM usuarios WHERE username = '$username'");

bien

$res=mysql_query("SELECT username,password FROM usuarios WHERE username = '".$username."and mail='".$el mail."'");


prueba la logica de la aplicacion averigua sobre puertas logicas y entenderas tu problema ;-D

Por talcual

686 de clabLevel



 

Colombia

firefox
Citar            
MensajeEscrito el 01 Abr 2009 06:00 pm
Compadre, por que no comparte los archivos del formulario?? seria genial!
saludos y gracias!

pipiripipi

Por pipiripipi

1 de clabLevel



 

safari
Citar            
MensajeEscrito el 01 Abr 2009 06:00 pm

pipiripipi escribió:

Compadre, por que no comparte los archivos del formulario?? seria genial!
saludos y gracias!

pipiripipi

Por pipiripipi

1 de clabLevel



 

safari
Citar            
MensajeEscrito el 27 Jul 2009 04:19 pm

Por chaku

11 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.