Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 06/07/2011, 16h47   #1
Candidat au titre de Membre du Club
 
Étudiant
Inscription : mars 2009
Messages : 102
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mars 2009
Messages : 102
Points : 14
Points : 14
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 :
$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
roy-mustang est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/07/2011, 17h16   #2
Rédacteur
 
Avatar de jreaux62
 
Homme Jérôme Réaux
Webdesigner
Inscription : août 2008
Messages : 2 993
Détails du profil
Informations personnelles :
Nom : Homme Jérôme Réaux
Âge : 45
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations professionnelles :
Activité : Webdesigner
Secteur : Arts - Culture

Informations forums :
Inscription : août 2008
Messages : 2 993
Points : 5 786
Points : 5 786
Envoyer un message via Skype™ à jreaux62
Citation:
Envoyé par roy-mustang Voir le message
Code :
$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' ?
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément."
Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique.
Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
jreaux62 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/07/2011, 17h30   #3
Candidat au titre de Membre du Club
 
Étudiant
Inscription : mars 2009
Messages : 102
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mars 2009
Messages : 102
Points : 14
Points : 14
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 :
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;
	}
roy-mustang est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/07/2011, 17h33   #4
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 466
Points : 8 466
le var_dump de $test_mdp donne quoi ?
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/07/2011, 18h48   #5
Candidat au titre de Membre du Club
 
Étudiant
Inscription : mars 2009
Messages : 102
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mars 2009
Messages : 102
Points : 14
Points : 14
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
roy-mustang est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/07/2011, 18h51   #6
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 466
Points : 8 466
exporte ta requete

Code :
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
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/07/2011, 08h21   #7
Membre actif
 
Homme
Inscription : avril 2011
Messages : 426
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : avril 2011
Messages : 426
Points : 171
Points : 171
Bonjour,


Es-tu sûr que dans ta base, le mot de passe soit bien encodé en MD5 ?
heretik25 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h34.


 
 
 
 
Partenaires

Hébergement Web