arbilus
Expert
Bonjours, me revoila avec du lourd accrochez vous:
[cpp]<form name="form1" method="post" action="sendpass.php">
<input onclick="this.value='';" value="Votre e-mail" name="email_to" id="mail_to" size="25" />
<input name="Submit" value="Envoyer" type="submit" />
</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 <admin@xxxxx.net>";
// 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.";
}
?>[/cpp]
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 ?
[cpp]<form name="form1" method="post" action="sendpass.php">
<input onclick="this.value='';" value="Votre e-mail" name="email_to" id="mail_to" size="25" />
<input name="Submit" value="Envoyer" type="submit" />
</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 <admin@xxxxx.net>";
// 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.";
}
?>[/cpp]
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 ?