Envoi MDP par mail: problème hash MD5

arbilus Messages postés 93 Date d'inscription dimanche 6 juin 2010 Statut Membre Dernière intervention 20 avril 2015 - 19 juin 2010 à 19:12
arbilus Messages postés 93 Date d'inscription dimanche 6 juin 2010 Statut Membre Dernière intervention 20 avril 2015 - 20 juin 2010 à 13:36
Bonjours, me revoila avec du lourd, accrochez vous:

<form name="form1" method="post" action="sendpass.php">
 

</form>

<?php //début code php

$host="localhost"; // Host name 
$username="xxxxx"; // Mysql username 
$password="xxxxxxx"; // Mysql password 
$db_name="xxxxx"; // Database name 


//Connect to server and select databse.
mysql_connect("$host", "$username", "$password")or die("cannot connect to server"); 
mysql_select_db("$db_name")or die("cannot select DB");

if (isset($_POST['Envoyer'])){

$email_to=$_POST['email_to'];

function mdpAleatoire($longueur=5)
{
$mdp = '';
// liste des caractères pour créer le mot de passe
$caracteres = 'NBVCXWQSDFGHJKLMPOIUYTREZA1234567890';
// longueur de la chaine
$nombre_caractreres = strlen($caracteres);
// On initialise la fonction aléatoire
srand(microtime()*1000000);
// On boucle sur le nombre de caractères voulus
for($i = 0; $i < $longueur; $i++)
{
// tirage d'un nombre inférieur ou égal à la longueur de la chaine de caractères
$position = rand(0, $nombre_caractreres-1);
// on cumule le caractère dans le mot de passe
$mdp = $mdp.substr($caracteres, $position, 1);
}
// on renvoie le mot de passe (on peut le stocker quelque part...)
return $mdp;
}
$newpass = mdpAleatoire();
$newpasshash = md5($newpass);

$query = new MysqlQuery($conn);
$qresult $query->GetSingleQuery('--SINGLE',"SELECT user_password FROM _users WHERE user_email '{$email_to}';",array("user_password"));


if($qresult < 0)
{
// Error
header("Location: edit_information.php?e=2");
exit;
}


// Store information in database
$qresult $query->SendSingleQuery("UPDATE _users SET user_password '{$newpasshash}' WHERE user_email = '{$email_to}';");

if($qresult == -1)
{
// Error occurred
header("Location: edit_information.php?e=2");
exit;
}
else
{
// Success, added 
header("Location: edit_information.php?e=P");
exit;
}

}

$to=$email_to; 

// Your subject 
$subject="Your password here"; 

// From 
$header="from: your name "; 

// Your message 
$messages= "Your password for login to our website \r\n";
$messages.="Your password is $newpass \r\n";
$messages.="more message... \r\n";

// send email 
$sentmail = mail($to,$subject,$messages,$header); 


// if your email succesfully sent 
if($sentmail){
echo "Your Password Has Been Sent To Your Email Address.";
}

?>



Bon, en faite c'est un script qui permet de générer un nouveau mdp, de l'inscrire sous forme crypté (en md5) dans la BDD et de l'envoyer par mail grace au mail du formulaire.
Bref, c'est un script de récupération de mot de passe fait par moi et grace à vous :) (j'ai fait des petites compils de script) .

Le seul problème, c'est que je comprend pas pourquoi le mot de passe envoyé est sous forme crypté alors que j'ai bien spécifié que $newpass était la "version" non crypté qui serait envoyé.

Pourriez-vous m'aider à comprendre ?

2 réponses

devil_may_cry Messages postés 194 Date d'inscription dimanche 18 mars 2007 Statut Membre Dernière intervention 11 juillet 2015
20 juin 2010 à 12:18
salut,
$newpass = mdpAleatoire();
c'est a cause de ca et je n'ai vu nulle part la ou tu recupere le mot de pas en claire
0
arbilus Messages postés 93 Date d'inscription dimanche 6 juin 2010 Statut Membre Dernière intervention 20 avril 2015
20 juin 2010 à 13:36
Problème réglé !

Après quelques modifs (car beaucoup d'erreur) ce script est parfait ! :
http://www.newthinktank.com/2010/04/how-to-code-php-login-and-forgotten-password-scripts/
0
Rejoignez-nous