Comparaison avec mot de passe crypté

maleckk Messages postés 66 Date d'inscription   Statut Membre Dernière intervention   -  
 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;

}

?>

A voir également:

2 réponses

webmaster09 Messages postés 398 Date d'inscription   Statut Membre Dernière intervention   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
maleckk Messages postés 66 Date d'inscription   Statut Membre Dernière intervention  
 
merci je vais essayer avec sa
0
marwa
 
sha1() comme algorithme de cryptage
0
avion-f16 Messages postés 19254 Date d'inscription   Statut Contributeur Dernière intervention   4 507
 
Tu me diras à quoi ça sert de définition la variable $mot_de_passe si tu utilises $_POST['pass'] dans ta condition ...
0
webmaster09 Messages postés 398 Date d'inscription   Statut Membre Dernière intervention   29
 
Si on a une seul variable on va avoir du mal a comparer deux mot de posse
0
avion-f16 Messages postés 19254 Date d'inscription   Statut Contributeur Dernière intervention   4 507
 
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 ...
0
webmaster09 Messages postés 398 Date d'inscription   Statut Membre Dernière intervention   29
 
C'est exactement ce que je lui ai dis, lit avant de parler :) .
0