Comparaison avec mot de passe crypté [Fermé]

Signaler
Messages postés
66
Date d'inscription
dimanche 28 février 2010
Statut
Membre
Dernière intervention
9 mai 2010
-
 marwa -
bonjour j'ai un formulaire qui va changer mon mot de passe enregister dans la base
mon travail c'est que je vais entrer dans le formulaire l'ancien mot de passe pui le nouveau mot de passe
mais les mot de passe enregister dans la base sont crypté donc je doit faire un test de comparaison avec le mot de passe enregister et le mot de passe enter par le formulaire moi j'ai fais ce code mais il ne marche pas il n'arrive pas a faire cette comparaison aidez moi svp merci d'avance




<?php
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = '';
$conn = mysql_connect($dbhost,$dbuser,$dbpass)or die('error connecting to mysql');
$dbname = 'asta';

mysql_select_db($dbname);
$mot_de_passe=md5($_POST["pass"]);

//pass est la valeur entrer par le formulaire

$sql = "select mot_de_passe from client";

$Clients = mysql_query($sql) or die(mysql_error());
$row_Clients = mysql_fetch_assoc($Clients);

if($row_Clients['mot_de_passe']=$_POST['pass']){
$confirmation=md5($_POST["confirmation"]);
// confirmation est la nouvelle valeur de mot de passe enter par le formulaire

$query="update client set mot_de_passe='$confirmation' WHERE mot_de_passe='$mot_de_passe'";
$result = mysql_query($query) or die(mysql_error());
?><br /><br /><?php echo $query;

}

?>

2 réponses

Messages postés
398
Date d'inscription
mercredi 3 septembre 2008
Statut
Membre
Dernière intervention
22 avril 2010
29
Bonjour,

Déjà dans ta requette tu sélectionne tout les mots de passe de tout les tes clients donc déjà ça ça ne va pas .

Il faut que tu rajoute l'attribue WHERE pour identifier ton client avec son id, son nom ou autres ...

Ensuite tu fait ça
if($row_Clients['mot_de_passe']=$_POST['pass'])

Il vaut mieux que tu fasse ça :
if($row_Clients['mot_de_passe']==md5($_POST['pass']))


Comme ça tu compare le mot de passe de ta base de donné qui est crypté a celui entré dans le formulaire qui a était crypté pour faire la vérification ...

De plus, la tu ne comparé pas les mots de passe tu disais que $row_Clients['mot_de_passe'] était égale a $_POST['pass'] . En gros tu ne faisais aucune vérification , tu stocké juste une variable dans une autre .

Je te conseille également d'utiliser sha1() comme algorithme de cryptage et pas md5();

Cordialement
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 74195 internautes nous ont dit merci ce mois-ci

maleckk
Messages postés
66
Date d'inscription
dimanche 28 février 2010
Statut
Membre
Dernière intervention
9 mai 2010

merci je vais essayer avec sa
sha1() comme algorithme de cryptage
Messages postés
18394
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
2 avril 2020
4 155
Tu me diras à quoi ça sert de définition la variable $mot_de_passe si tu utilises $_POST['pass'] dans ta condition ...
webmaster09
Messages postés
398
Date d'inscription
mercredi 3 septembre 2008
Statut
Membre
Dernière intervention
22 avril 2010
29
Si on a une seul variable on va avoir du mal a comparer deux mot de posse
avion-f16
Messages postés
18394
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
2 avril 2020
4 155
Avant de mettre -1, essaye de comprendre.
Il défini la variable $mot_de_passe contenant le md5 de $_POST['pass'] mais dans sa condition, il utilise la variable $_POST['pass'] qui elle n'est pas en md5.
De plus, il n'utilise qu'un seul "=" pour faire sa condition ...
webmaster09
Messages postés
398
Date d'inscription
mercredi 3 septembre 2008
Statut
Membre
Dernière intervention
22 avril 2010
29
C'est exactement ce que je lui ai dis, lit avant de parler :) .