je veux permettre au visiteur de mon site de changer son mot de passe et pour ceci je dois comparer entre le mot de passe tapé (comme ancien mot de passe) et celui qui existe déjà enregistré dans ma base de données et crypté avec md5.
pour ceci je récupère le mot de passe tapé par le client je le crypte avec md5
$passe_enc=md5($passe_enc);
et je le compare avec ce qui existe dans ma base données. voici les script qui concernent le formulaire et la requête sql.
celui du formulaire
1 2 3 4 5 6 7 8 9
| Ancien mot de passe:
<input name="passe_enc" id="frmclientPassC" size="28" type="password">
<label class="label2-inscr">Mot de passe :<br /></label>
<input name="nouv_passe" id="frmclientPass" size="28" value="" type="password">
<span class="etoile">*</span> <span class="small">(min. 6 caractères)</span> </p>
<label >Confirmation mot de passe :<br /></label>
<input name="nouv_passe2" id="frmclientPassC" size="28" value="" type="password"> |
et celui du traitement sql :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| if(isset($_POST['passe_enc']))
{
$passe_enc=$_POST['passe_enc'];
$nouv_passe=$_POST['nouv_passe'];
$nouv_passe2=$_POST['nouv_passe2'];
$passe_enc=md5($passe_enc);
$reponse_passe=mysql_query("SELECT * FROM client WHERE mot_de_passe='$passe_enc' AND session='$session'") or die ('Erreur : '.mysql_error()); //verification si mdp valide
$test_mdp=mysql_fetch_array($reponse_passe);
$ancien_mdp=$test_mdp['mot_de_passe'];
if($passe_enc!==$ancien_mdp)
{
echo'L\'ancien mot de passe n\'est pas correct.<br /><a href="profil.php" onClick="history.back()">Retour</a>';
return FALSE;
} |
j'ai seulement publié la partie de mon script ou le problème existe, donc comme je vous ai expliqué, je ne parviens pas à comparer le mot de passe hashé avec celui existant dans ma base de données et j'ai testé même la chose avec l'interface existante sur easyphp, j'ai aucun problème avec les variable traitées par la requête (j'ai vérifié la chose avec des echo)
merci pour votre aide
Partager