Souci avec mon code modifier mot de passe

Répondre
zhangxdfr
le 17/07/2014 à 14:12
zhangxdfr
Bonjour,

J'ai un souci avec mon code. Je voudrais que les membres puissent modifier leur mot de passe qui est en md5. mais quand je veux changer le mot de passe, le mot de passe ne change pas dans la base de données. le message d'erreur s'affiche"Ancien mot de passe non valide". Merci de m'aider. Voilà mon code :
<<?php
session_start();
if (!isset($_SESSION['login'])) {
header ('Location: index.php');

exit();
}
?>
<?php
if (isset($_POST['Submit']) && $_POST['Submit'] == 'Valider') {
$login = $_POST['login'];
$pass_old = $_POST['pass_old'];
$new_pass = $_POST['new_pass'];
$new_pass_conf = $_POST['new_pass_conf'];
$base = mysql_connect ('xxxxxx', 'xxxxxx', 'xxxxxx');
mysql_select_db ('xxxxxx', $base);
// tu récupère l'ancien mot de passe dans la bdd
$sql = mysql_query("SELECT pass_md5 FROM membre WHERE login = '".$_SESSION['login']."'");
list($pass) = mysql_escape_string($sql);

// tu compare si le nouveau passe correspond à l'ancien
if ($new_pass == $new_pass_conf){
$erreur = 'Les 2 mots de passe sont diff&eacute;rents.';

// tu encrypte l'ancien mot de passe du formulaire pour le comparer à celui de ta bdd
$pass_old = md5($pass_old);

//tu vérifie si il sont identique
if ($pass == $pass_old)
{
//si oui tu update et encrypte le nouveau mot de passe dans la bdd

$new_pass = md5($new_pass);

$sql= "UPDATE membre SET pass_md5 ='" .$new_pass. "' WHERE login ='".$_SESSION['login']."'";

echo "Merci, le mot de passe à été changé.";
}
else
{
echo "Ancien mot de passe non valide";
}
}
else
{
echo "Mot de passe de confirmation incorrect, recommencez SVP";
}
}
?>>
Paphio-King
le 17/07/2014 à 23:04
Paphio-King
Bonjour zhangxdfr.
Je ne sais pas si c'est la meilleur solution mais test une fois cette ligne comme si dessous pour voir si sa ne changerais pas les choses.
<?php
$sql= "UPDATE membre SET pass_md5 ='$new_pass' WHERE login ='$_SESSION[ 'login']'";
php ?>


Voilà tiens moi au courant.
<-- Paphio-King -->
Paphio-King
le 18/07/2014 à 15:12
Paphio-King
Oups je me suis relu et vérifier sur des solutions c'est comme ceci que sa dois être.
<?php $sql= "UPDATE membre SET pass_md5 =" . $new_pass . " WHERE login = " . $_SESSION[ 'login']; 
$req = mysql_query($sql);
php ?>
.

Il me semble que après chaque requête sql il faut faire appelle a cette partie de code : $req = mysql_query($sql);
<-- Paphio-King -->
zhangxdfr
le 22/07/2014 à 11:36
zhangxdfr
Rien changé, il s'affiche toujours le message d'erreur "Ancien mot de passe non valide".
LupusMic
le 28/07/2014 à 08:43
LupusMic
Quel est le sens de ce code ?

list($pass) = mysql_escape_string($sql);
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours