IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

problème avec la récupération de données hashées avec l'algorythme md5 dans ma BD


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Étudiant
    Inscrit en
    Mars 2009
    Messages
    108
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2009
    Messages : 108
    Points : 47
    Points
    47
    Par défaut 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 : Sélectionner tout - Visualiser dans une fenêtre à part
    $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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  2. #2
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par roy-mustang Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $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
    1/ $session vient d'où ??
    2/ as-tu essayer sans mettre AND session='$session' ?

  3. #3
    Membre du Club
    Étudiant
    Inscrit en
    Mars 2009
    Messages
    108
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2009
    Messages : 108
    Points : 47
    Points
    47
    Par défaut 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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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;
    	}

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    le var_dump de $test_mdp donne quoi ?

  5. #5
    Membre du Club
    Étudiant
    Inscrit en
    Mars 2009
    Messages
    108
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2009
    Messages : 108
    Points : 47
    Points
    47
    Par défaut 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

  6. #6
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    exporte ta requete

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $sql = "SELECT * FROM client WHERE mot_de_passe='$passe_enc' AND session='$session'";
    $reponse_passe=mysql_query($sql);
    et fait un var_dump sur $sql pour voir si c'est vraiment ce que t'attend

  7. #7
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 660
    Points : 331
    Points
    331
    Par défaut
    Bonjour,


    Es-tu sûr que dans ta base, le mot de passe soit bien encodé en MD5 ?

Discussions similaires

  1. Réponses: 2
    Dernier message: 17/01/2011, 09h01
  2. Réponses: 9
    Dernier message: 28/04/2008, 18h34
  3. Réponses: 7
    Dernier message: 09/04/2008, 04h13
  4. Réponses: 11
    Dernier message: 22/11/2006, 07h31
  5. récupération de données SQL avec C++
    Par krusty++ dans le forum Bibliothèques
    Réponses: 2
    Dernier message: 27/03/2006, 15h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo