problème avec la récupération de données hashées avec l'algorythme md5 dans ma BD
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
Code:
$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
Code:
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 :
Code:
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
aucun problème avec la variable session
il y a aucun problème avec la variable session j'ai juste oublié de la mettre dans la parcelle du script que j'ai publié ici, mais elle existe bel et bien
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| $session=$_SESSION["session"];
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;
} |
la requête ne fonctionne pas même dans l'interface sql de easyphp
mon ami j'ai testé toutes les variables (avec var dump aussi) et elles sont fonctionnelle et s'affiche jusqu'à cette requête.
la requête ne fonctionne pas (elle ne donne aucun ligne de résultat même dans l'interface SQL de mon logiciel easyphp)
il s'agit d'un problème de cryptage et de comparaison entre données cryptés qui ne fonctionnent pas