par
Ultiny » 21 févr. 2005, 19:35
Maintenant mon systeme de login, delogin, inscription, deletage du compte terminé, je travail sur le mot de passe perdu et sur la modification des données.
Je voudrais savoir comment je pourrais générer un mot de passe aléatoire qui sera envoyé par mail puis mis a jour dans la base de donné. En fait j'ai peur qu'avec ceci
function GenerPassword()
{
$string="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ123456789";
$newpass="";
for($i=0;$i<8;$i++)
{
$pass.=$string[mt_rand()%strlen($string)];
}
return $pass;
}
$mdp = GenerPassword();
echo $mdp;
Les mots de passe appelé du coup 2 fois (1x pour mail et 1 x pour db) soient different. Alors comment pourraije proceder ?
<?PHP
//On verifi si deja cliqué OK
if (isset($_POST['envoyer'])){
//il a cliqué OK
if(isset($_POST['login'])) $login=$_POST['login'];
else $login="";
include ('configuration.php');
//On verifie user si existe
$db = mysql_connect($dbhost,$dbuser,$dbpasswd);
mysql_select_db($dbname,$db);
$mdpsql = "SELECT id FROM servgame_clients WHERE login='$login'";
$mdpreq = mysql_query($mdpsql) or die ('Erreur SQL !'.$mdpsql.'<br>'.mysql_error());
$mdpres = mysql_num_rows($mdpreq);
mysql_close();
if (($mdpres!=0)){
//user existe on prend mail
$db = mysql_connect($dbhost,$dbuser,$dbpasswd);
mysql_select_db($dbname,$db);
$reqmailsql = "SELECT email FROM servgame_clients WHERE login='$login'";
$reqmailreq = mysql_query($reqmailsql) or die ('Erreur SQL !'.$reqmailsql.'<br>'.mysql_error());
$reqmailres = mysql_num_rows($reqmailreq);
while($data = mysql_fetch_assoc($reqmailreq)){
//on genere un new mot de pass
//on met a jour le pass ds la base de donnée
/*
//On mail
mail("$login", "Votre nouveau mot de passe", "$newpass", "From: $mailadmin");
*/
//On annonce que c'est bon
echo"<div align=\"center\" class=\"centre\">Votre nouveau mot de passe vient de vous être envoyer à l'adresse mail<br>que vous avez indiqué lors de votre inscription</div>";
/*<script language=\"JavaScript\">
setTimeout(\"window.location='/index.php?page=Membres'\",3000);
</script>";*/
//user existe pas on affiche erreur + formulaire
}else{
echo"<div align=\"center\" class=\"centre\">Pour recevoir votre mot de passe par mail, veuillez indiquer votre login</div>
<br><br><div align=\"center\" class=\"signale\">Le login que vous avez enté n'existe pas</div><br><br>
<form action=\"/index.php?page=Membres&selec=Passperdu\" method=\"post\">
<table align=\"center\" border=\"0\"><tr><td width=\"67\" class=\"entete\">Login :</td>
<td width=\"10\"></td><td width=\"144\"><input type=\"text\" name=\"login\" maxlength=\"50\" class=\"entete\">
</td></tr><tr><td colspan=\"3\" align=\"center\"><table width=\"147\" border=\"0\" align=\"right\">
<tr><td width=\"149\"><input type=\"submit\" value=\"Envoyer\" name=\"envoyer\" class=\"entete\"></td>
</tr></table></td></tr></table></form>";
}
//lutilisateur na pas cliqué OK
}else{
if(isset($_POST['login'])) $login=$_POST['login'];
else $login="";
echo"<div align=\"center\" class=\"centre\">Pour recevoir votre mot de passe par mail, veuillez indiquer votre login </div>
<br><br><br><br><br>
<form action=\"/index.php?page=Membres&selec=Passperdu\" method=\"post\">
<table align=\"center\" border=\"0\"><tr><td width=\"67\" class=\"entete\">Login :</td>
<td width=\"10\"></td><td width=\"144\"><input type=\"text\" name=\"login\" maxlength=\"50\" class=\"entete\">
</td></tr><tr><td colspan=\"3\" align=\"center\"><table width=\"147\" border=\"0\" align=\"right\">
<tr><td width=\"149\"><input type=\"submit\" value=\"Envoyer\" name=\"envoyer\" class=\"entete\"></td>
</tr></table></td></tr></table></form>";
}
?>
Maintenant mon systeme de login, delogin, inscription, deletage du compte terminé, je travail sur le mot de passe perdu et sur la modification des données.
Je voudrais savoir comment je pourrais générer un mot de passe aléatoire qui sera envoyé par mail puis mis a jour dans la base de donné. En fait j'ai peur qu'avec ceci
[php]function GenerPassword()
{
$string="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ123456789";
$newpass="";
for($i=0;$i<8;$i++)
{
$pass.=$string[mt_rand()%strlen($string)];
}
return $pass;
}
$mdp = GenerPassword();
echo $mdp;
[/php]
Les mots de passe appelé du coup 2 fois (1x pour mail et 1 x pour db) soient different. Alors comment pourraije proceder ?
[php]<?PHP
//On verifi si deja cliqué OK
if (isset($_POST['envoyer'])){
//il a cliqué OK
if(isset($_POST['login'])) $login=$_POST['login'];
else $login="";
include ('configuration.php');
//On verifie user si existe
$db = mysql_connect($dbhost,$dbuser,$dbpasswd);
mysql_select_db($dbname,$db);
$mdpsql = "SELECT id FROM servgame_clients WHERE login='$login'";
$mdpreq = mysql_query($mdpsql) or die ('Erreur SQL !'.$mdpsql.'<br>'.mysql_error());
$mdpres = mysql_num_rows($mdpreq);
mysql_close();
if (($mdpres!=0)){
//user existe on prend mail
$db = mysql_connect($dbhost,$dbuser,$dbpasswd);
mysql_select_db($dbname,$db);
$reqmailsql = "SELECT email FROM servgame_clients WHERE login='$login'";
$reqmailreq = mysql_query($reqmailsql) or die ('Erreur SQL !'.$reqmailsql.'<br>'.mysql_error());
$reqmailres = mysql_num_rows($reqmailreq);
while($data = mysql_fetch_assoc($reqmailreq)){
//on genere un new mot de pass
//on met a jour le pass ds la base de donnée
/*
//On mail
mail("$login", "Votre nouveau mot de passe", "$newpass", "From: $mailadmin");
*/
//On annonce que c'est bon
echo"<div align=\"center\" class=\"centre\">Votre nouveau mot de passe vient de vous être envoyer à l'adresse mail<br>que vous avez indiqué lors de votre inscription</div>";
/*<script language=\"JavaScript\">
setTimeout(\"window.location='/index.php?page=Membres'\",3000);
</script>";*/
//user existe pas on affiche erreur + formulaire
}else{
echo"<div align=\"center\" class=\"centre\">Pour recevoir votre mot de passe par mail, veuillez indiquer votre login</div>
<br><br><div align=\"center\" class=\"signale\">Le login que vous avez enté n'existe pas</div><br><br>
<form action=\"/index.php?page=Membres&selec=Passperdu\" method=\"post\">
<table align=\"center\" border=\"0\"><tr><td width=\"67\" class=\"entete\">Login :</td>
<td width=\"10\"></td><td width=\"144\"><input type=\"text\" name=\"login\" maxlength=\"50\" class=\"entete\">
</td></tr><tr><td colspan=\"3\" align=\"center\"><table width=\"147\" border=\"0\" align=\"right\">
<tr><td width=\"149\"><input type=\"submit\" value=\"Envoyer\" name=\"envoyer\" class=\"entete\"></td>
</tr></table></td></tr></table></form>";
}
//lutilisateur na pas cliqué OK
}else{
if(isset($_POST['login'])) $login=$_POST['login'];
else $login="";
echo"<div align=\"center\" class=\"centre\">Pour recevoir votre mot de passe par mail, veuillez indiquer votre login </div>
<br><br><br><br><br>
<form action=\"/index.php?page=Membres&selec=Passperdu\" method=\"post\">
<table align=\"center\" border=\"0\"><tr><td width=\"67\" class=\"entete\">Login :</td>
<td width=\"10\"></td><td width=\"144\"><input type=\"text\" name=\"login\" maxlength=\"50\" class=\"entete\">
</td></tr><tr><td colspan=\"3\" align=\"center\"><table width=\"147\" border=\"0\" align=\"right\">
<tr><td width=\"149\"><input type=\"submit\" value=\"Envoyer\" name=\"envoyer\" class=\"entete\"></td>
</tr></table></td></tr></table></form>";
}
?>[/php]