Récupération mot de passe par mail.

Résolu/Fermé
BipBipLeTueur Messages postés 100 Date d'inscription mercredi 2 juillet 2008 Statut Membre Dernière intervention 4 janvier 2012 - 27 janv. 2011 à 19:58
canarder Messages postés 1714 Date d'inscription jeudi 28 août 2008 Statut Membre Dernière intervention 13 mai 2018 - 27 janv. 2011 à 20:08
Bonjour,

Bonsoir à toutes et à tous!

J'ai un petit souci au niveau d'une envois d'un mot de passe (ou plus tout, d'un renvois d'un mot de passe...).

J'ai crée une page avec un formulaire html:
<form action="http://<?php echo $_SERVER["SERVER_NAME"] . $_SERVER["SCRIPT_NAME"]; ?>" method="post">
<br />
Entrez l'email OU le pseudo que vous avez utiliser lors de l'inscription:
</br >
     <p>
          Email: <input type="text" name="email" />
     </p>
     
     <center>OU</center>
     <p>
          Pseudo: <input type="text" name="pseudo" />
     </p>

     <p>
          <input type="submit" name="Envoyer" value="Renvoyer" />
     </p>
<br />
<?php echo "$message"; ?>
</form>




Et sur la même page, j'ai ce script qui est sensé renvoyer le mot de passe de l'utilisateur. Il ne renvois rien du tout, il passe directement au else!
Mes mot de passe sont stockés dans ma BDD en sha1. Donc, je devrais renvoyé un nouveau mot de passe et faire un UPDATE dans ma BDD... Comme pourrais-je faire çà ? ^^

Voici le code qui ne fonctionne pas correctement:

<?php

// Une fois le formulaire envoyé
     if(isset($_POST["Envoyer"]))
     {
		      // Connexion à la base de données
		      mysql_connect("serveur", "user", "passwd");
		      mysql_select_db("bdd");

        $email = $_POST['email'];
					
$sql = 'SELECT Nom_Utilisateur, Adresse_Email, Mot_de_Passe FROM comptes_utilisateurs WHERE Adresse_Email = "' . $email . '"';
// on lance la requête (mysql_query) et on impose un message d'erreur si la requête ne se passe pas bien (or die)
 $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
 // on recupere le resultat sous forme d'un tableau
 $row = mysql_fetch_array($req);
					
	// Si un enregistrement est trouvé
        if(mysql_num_rows($sql) > 0)
         {
                         
           while($row = mysql_fetch_array($sql))
           {
                              
             if($_POST["email"] == $row["Adresse_Email"])
             {
                              	   
		$passwd = $row['Mot_de_Passe'];
		$pseudo = $row['Nom_Utilisateur'];
		$subject = 'Récupération de votre mot de passe';
		$message = "Bonjour " . $pseudo . "! Voici votre nouveau mot de passe: " . $passwd . ". Ne l'oubliez plus!" . "\r\n\r\n" .
		'Bien à vous,' . "\r\n" .
		'www.site.be';                   
		$headers = 'From: site.be' . "\r\n" .
		'Reply-To: contact@site.be' . "\r\n" .
		'X-Mailer: PHP/' . phpversion();
								
// Envoie du mail
 mail($email, $subject, $message, $headers); 
$message = '<font color="green">Votre mot de passe à été envoyé! à l\'adresse: <strong>' . $_POST['email'];'</strong></font>';


       }elseif($_POST["pseudo"] == $row["Nom_Utilisateur"])
         {
             $passwd = $row['Mot_de_Passe'];
	     $pseudo = $row['Nom_Utilisateur'];
	     $subject = 'Récupération de votre mot de passe';
	    $message = "Bonjour " . $pseudo . "! Voici votre nouveau mot de passe: " . $passwd . ". Ne l'oubliez plus!" . "\r\n\r\n" .
	  'Bien à vous,' . "\r\n" .
	  'www.winrewards.be';                   
	  $headers = 'From: site.be' . "\r\n" .
          'Reply-To: contact@site.be' . "\r\n" .
	  'X-Mailer: PHP/' . phpversion();
								
	 // Envoie du mail
	mail($email, $subject, $message, $headers); 
$message = '<font color="green">Votre mot de passe à été envoyé! à l\'adresse: <strong>' . $_POST['email'];'</strong></font>';
     }
       else
      {
      $message = "<font color=\"red\">L'adresse e-mail <strong>" . $_POST["email"];
     $message .= "</strong> n'est pas dans notre base de donnée!</font>";
	
	}	
                              
     }
                         
  }
							    
		
     mysql_close();
}

?>


Merci beaucoup! :)


A voir également:

1 réponse

canarder Messages postés 1714 Date d'inscription jeudi 28 août 2008 Statut Membre Dernière intervention 13 mai 2018 354
27 janv. 2011 à 20:08
déjà enlève action="", ça posteras automatiquement sur la page elle même, ou utilise juste $_SERVER["SCRIPT_NAME"]

après, le script d'envoi doit bien être avant tout affichage html.

essaye de mettre des noms en minuscule sans caractères spéciaux et accents dans ta bdd (genre utilisateur ou user)
0