Modifier mot de passe espace membre php

Résolu
hraph Messages postés 29 Date d'inscription   Statut Membre Dernière intervention   -  
hraph Messages postés 29 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je voulais créer une page php pour permettre aux utilisateur de pouvoir modifier leur mot de passe de l'espace membre. J'ai crée ce script en m'inspirant d'internet mais je ne comprends pas l'erreur php : "Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource" Merci.

voici le code

sur la première page de la modification : (pass-modif.php)

<html>
<h2>Modifier le mot de passe</h2>
<form method="post" action="pass-modif-2.php">
Login : <input type="text" name="login">
Ancien mot de passe : <input type="password" name="pass_old">
Nouveau mot de passe : <input type="password" name="new_pass">
Confirmation : <input type="password" name="new_pass_conf">
<input type="submit" name="Submit" value="Valider">
</form>
</body>
</html>


et sur la page php : (pass-modif-2.php)

<?php
session_start();
if (!isset($_SESSION['login'])) {
	header ('Location: index.php');

	exit();
}
?>
<?php 
  if (isset($_POST['Submit']) && $_POST['Submit'] == 'Valider') {
    $user = $_POST['login'];
	$new_pass = $_POST['new_pass'];
	$pass_old = $_POST['pass_old'];
	$new_pass_conf = $_POST['new_pass_conf'];
	$base = mysql_connect ('localhost', bduser', 'bdpass');
			mysql_select_db ('bdname', $base);
// tu récupère l'ancien mot de passe dans la bdd
$sql = mysql_query('SELECT pass FROM admin WHERE login = ' . $user .'');
list($password) = mysql_fetch_array($sql);
 
// tu compare si le nouveau passe correspond à l'ancien
if ($new_pass == $new_pass_conf)
{
 
 
    //tu vérifie si il sont identique
    if ($password == $pass_old)
    {
        //si oui tu update et encrypte le nouveau mot de passe dans la bdd
 
        $pass   = $new_pass;  
 
        $query  = mysql_query('UPDATE admin SET pass = ' . $pass . ' WHERE login = ' . $user .'');
 
        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";
}
}
?>


A voir également:

3 réponses

maka54 Messages postés 698 Date d'inscription   Statut Membre Dernière intervention   80
 
$sql = mysql_query('SELECT pass FROM admin WHERE login = ' . $user .'');


$user est une chaine de caractère donc il te manque des quotes

$sql = mysql_query("SELECT pass FROM admin WHERE login = '" . $user ."'");


même remarque pour la requete UPDATE un peu plus bas
5
hraph Messages postés 29 Date d'inscription   Statut Membre Dernière intervention  
 
merci beaucoup, ça marche. c'était donc ça qui faisait tout foirer !
0
Utilisateur anonyme
 
Slt
Je suis pas un pro de php mais cette ligne m'intrigue:
list($password) = mysql_fetch_array($sql);
++
1
AssassinTourist Messages postés 6029 Date d'inscription   Statut Contributeur Dernière intervention   1 312
 
Bonjour,
Inspire-toi de ceci : https://www.commentcamarche.net/contents/784-php-bases-de-donnees
0