coockiesch
Messages postés2268Date d'inscriptionmercredi 27 novembre 2002StatutMembreDernière intervention13 septembre 20134 26 juil. 2004 à 12:53
Salut!
On va pas faire le code complet, je te dire comment faire. Surtout que si tu fais un login, le principe est le même....
Tu demandes donc l'ancien et 2 fois le nouveau.
1) Tu regarde que l'ancien corresponde.
2) Tu regarde que les 2 nouveaux soient identiques
3) Tu reegardes qu'ils soient valide (caractères, longueurs)
4) Tu update ta bdd et tu affiche un tit msg
ronanf235
Messages postés105Date d'inscriptionjeudi 24 juin 2004StatutMembreDernière intervention28 juin 2006 26 juil. 2004 à 13:14
le mieu a mon avis c que tu fasses un petit script toi meme avec :
un formulaire pour saisir l'ancien mot de passe et le nouveau deux fois
ensuite tu n'as plus qu'a controler :
1 - que l'ancien mot de passe est le bon (tu le stockes dans une bd ?)
2 - que les deux nouveaux sont identiques et qu'ils repondent bien aux critere que tu t fixer (nb de caractere mini...)
3 - tu fais la modif dans ta base (en encodant le mot de passe pour etre securitaire a bloc :-)
si c pas assez clair (ou si tu as vraimenbt la flemme, je peu te passer un bout de code que j'avais fait pour un site, mais ce n'est pas tres complique, essaye de le faire topi meme d'abord
cs_soufia
Messages postés20Date d'inscriptionjeudi 1 juillet 2004StatutMembreDernière intervention28 juillet 2004 26 juil. 2004 à 15:45
je l'ai deja commencé mais à j'ai rencontré qq pb; voila 1 par exemple
une partie de mon code (pour verifier les deux nouveau password , et apres faire la MAJ )
<?php
function chercherpassword($pws,$pws1)
{ echo" je suis la";
$link=mysql_connect("localhost", "root");
mysql_select_db("bd_adhesion",$link);
$rs= mysql_query("SELECT * FROM t_login where modepasse='$pws'",$link)or die('erreur : '.mysql_error());
echo $rs["idlog"];
$num_rows = mysql_num_rows($rs);
echo $num_rows;
if ($num_rows == 0)
echo "mode passe non correcte";
else
mysql_query("INSERT INTO t_login VALUES('$rs[idlog]','$rs[login]','$pws1') where modepasse='$pws'" )or die('erreur : '.mysql_error());
mysql_close();
}
function verifpass($pws1,$pws2)
{
if ($pws1==$pws2)
{
return true;
}
else
{
return false;
}
}
$pass1=htmlentities($_POST['pws1']);
$pass2=htmlentities($_POST['pws2']);
if (verifpass($pass1,$pass2))
{
chercherpassword($_POST['pws'],$_POST['pws1']);
}
else echo " verification de mode passe invalide";
?>
et html
<html>
<head>
<title></title>
</head>
<FORM action="cherchepassword.php" method="post">
<td>Mode passe
</td>
<tr>
<td width="">nouveau mode passe
</td>
<td width=""></td>
</tr>
<tr>
<td width="">confirmation de mode passe
</td>
<td width=""></td>
</tr>
</form>
il me donne cet erreur parcontre je vois pas ou est le pb:
Erreur de syntaxe près de 'where modepasse='rrpoklm'' à la ligne 1
ronanf235
Messages postés105Date d'inscriptionjeudi 24 juin 2004StatutMembreDernière intervention28 juin 2006 26 juil. 2004 à 18:02
en fait tu peux encoder ton mot de passe afin qu'il n'apparaisse pas en clair dans ta base de donnees
tu peux le faire toi meme mais php fourni une fonction tres pratique : md5
avant d'envoyer le mdp a la base, tu le converti :
$pwdCode= md5($pwd);
ensuite ton INSERT/UPDATE
en revanche, c'est irreversible et tu ne pourras plus revenir au mot de passe original (c'est ce qui fait la securite du truc)
donc quand tu fais ta requete sur la bdd, tu dois d'abord convertir le mot de passe avec MD5 et ensuite comparer le resultat avec ce que tu a dans ta base
par ex :
$pwdCode = md5($pwd);
SELECT * FROM _table WHERE _pwd = '$pwdCode'
cs_soufia
Messages postés20Date d'inscriptionjeudi 1 juillet 2004StatutMembreDernière intervention28 juillet 2004 26 juil. 2004 à 18:47
merci j'ai bien compris
je l'ai fait ça mais il trouve que les deux mode passe ne sont pas pareil avant et apres md5
quand je fais select il trouve aucun mode passe qui egal a....
ronanf235
Messages postés105Date d'inscriptionjeudi 24 juin 2004StatutMembreDernière intervention28 juin 2006 27 juil. 2004 à 09:22
comment est ce que tu les compares ? et surtout tu compares quoi avec quoi ?
quand l'utilisateur te donne son mot de passe (pour acceder au site ou autre...), il faut que tu le codes avec md5 avant de le comparer a celui qui est dans la base
c'est tout a fait normal qu'une fois passe a la "moulinette" md5, les mots de passe ne soit pas comparable, car md5 transforme ton mot de passe en une chaine de caractere unique alphanumerique
par exemple :
toto donne f71dbe52628a3f83a77ab494817525c6
donc la procedure est la suivante :
- a l'inscription tu donnes un mdp et tu le stocke code avec md5 (exemple le mdp est toto et tu stockes dans la base md5(toto)= f71dbe52628a3f83a77ab494817525c6)
- pour acceder au site (ou tout autre action ou besoins mdp comme la modif) tu demane l'ancien mdp, tu l'encode avec md5, et tu compares avec les mdp codes dans la base
donc le gars te donne toto , et tu encode avec md5 tu obtient md5(toto) =f71dbe52628a3f83a77ab494817525c6 et c'est f71dbe52628a3f83a77ab494817525c6 que tu recherches dans ta bases
j'ai l'impression de me repeter un peu, j'espere que ce coup ci c'est assez clair ?