le 17/07/2014 à 14:12
Souci avec mon code modifier mot de passe
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 :
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é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";
}
}
?>>