Changement de mot de passe - Espace membre
Résolu/Fermé
axteure
Messages postés
62
Date d'inscription
samedi 15 août 2009
Statut
Membre
Dernière intervention
9 janvier 2017
-
Modifié par axteure le 21/04/2013 à 20:35
Guiver Messages postés 262 Date d'inscription mardi 30 novembre 2010 Statut Membre Dernière intervention 20 mai 2021 - 23 avril 2013 à 11:54
Guiver Messages postés 262 Date d'inscription mardi 30 novembre 2010 Statut Membre Dernière intervention 20 mai 2021 - 23 avril 2013 à 11:54
A voir également:
- Changement de mot de passe - Espace membre
- Piratage facebook changer mot de passe - Guide
- Voir mot de passe wifi android - Guide
- Espace insécable word - Guide
- Mot de passe administrateur - Guide
- Mettre un mot de passe sur un dossier - Guide
5 réponses
Guiver
Messages postés
262
Date d'inscription
mardi 30 novembre 2010
Statut
Membre
Dernière intervention
20 mai 2021
87
23 avril 2013 à 09:55
23 avril 2013 à 09:55
mysql_result, regarde içi :
https://www.php.net/manual/fr/function.mysql-result.php
Essaye comme ça :
Dans ta BDD, tu es certain que les champs s'appellent "pass" et "login" ?
Ton utilisateur a bien un mot de passe ?
Tu as l'erreur avec le code que je t'ai passé ? Ou avec le tien ?
C'est normal que se soit affiché : "Ancien mot de passe non valide" vu que $pass n'existe pas. Donc "if (md5($passactuel) == $pass)" n'est pas vrai.
Le problème vient de ton SELECT, et comme je l'ai déjà dis, je ne connais plus le mysql.
Dès que tu auras corrigé ton SELECT, le reste devrait rouler.
https://www.php.net/manual/fr/function.mysql-result.php
Essaye comme ça :
$pass=mysql_result($sql,0);
Dans ta BDD, tu es certain que les champs s'appellent "pass" et "login" ?
Ton utilisateur a bien un mot de passe ?
Tu as l'erreur avec le code que je t'ai passé ? Ou avec le tien ?
C'est normal que se soit affiché : "Ancien mot de passe non valide" vu que $pass n'existe pas. Donc "if (md5($passactuel) == $pass)" n'est pas vrai.
Le problème vient de ton SELECT, et comme je l'ai déjà dis, je ne connais plus le mysql.
Dès que tu auras corrigé ton SELECT, le reste devrait rouler.
Guiver
Messages postés
262
Date d'inscription
mardi 30 novembre 2010
Statut
Membre
Dernière intervention
20 mai 2021
87
22 avril 2013 à 14:35
22 avril 2013 à 14:35
Salut,
Désolé, je n'utilise pas mysql mais je pense que mysql_fetch_array() renvoi une réponse sous forme de tableau.
le list($pass) doit certainement permettre de récupérer l'unique réponse dans une variable. (à vérifier)
En supposant que tu récupère bien tes variables :
$newpass = $_POST['newpass'];
...
Essaye de remplacer
par
Désolé, je n'utilise pas mysql mais je pense que mysql_fetch_array() renvoi une réponse sous forme de tableau.
le list($pass) doit certainement permettre de récupérer l'unique réponse dans une variable. (à vérifier)
En supposant que tu récupère bien tes variables :
$newpass = $_POST['newpass'];
...
Essaye de remplacer
if ($newpass == $repeatnewpass) { $password = md5($pass); if ($password == $pass) { $pass = md5($newpass); $sql= "UPDATE membre SET pass ='" .$pass. "' WHERE login ='".$_SESSION['login']."'";
par
if ($newpass == $repeatnewpass) { if (md5($password) == $pass) { $pass2 = md5($newpass); $sql= "UPDATE membre SET pass ='" .$pass2. "' WHERE login ='".$_SESSION['login']."'";
axteure
Messages postés
62
Date d'inscription
samedi 15 août 2009
Statut
Membre
Dernière intervention
9 janvier 2017
3
22 avril 2013 à 14:59
22 avril 2013 à 14:59
Bonjour et d'abord merci !
J'ai changé comme tu m'as dit, mais sa m'affiche une erreur:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/u302086084/public_html/membre.php on line 38
qui correspond a : list($pass) = mysql_fetch_array($sql);
De plus, dés que je me connecte, sa m'affiche "Ancien mot de passe non valide"
et quand je rentre des choses dans les champs puis que je valide. La page se charge mais rien ne se fait, aucune erreur sauf l'erreur "Ancien mot de passe non valide" qui ne bouge pas. Meme quand je rentre le bon mot de passe :/. Et au final le mot de passe ne se change pas. Bref il ne se passe rien :s
J'ai changé comme tu m'as dit, mais sa m'affiche une erreur:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/u302086084/public_html/membre.php on line 38
qui correspond a : list($pass) = mysql_fetch_array($sql);
De plus, dés que je me connecte, sa m'affiche "Ancien mot de passe non valide"
et quand je rentre des choses dans les champs puis que je valide. La page se charge mais rien ne se fait, aucune erreur sauf l'erreur "Ancien mot de passe non valide" qui ne bouge pas. Meme quand je rentre le bon mot de passe :/. Et au final le mot de passe ne se change pas. Bref il ne se passe rien :s
Guiver
Messages postés
262
Date d'inscription
mardi 30 novembre 2010
Statut
Membre
Dernière intervention
20 mai 2021
87
22 avril 2013 à 15:18
22 avril 2013 à 15:18
Tu peux donner tout ton <form></form> et tout le script php utilisé pour l'update stp ?
Tu es sur de ta variable $_SESSION['login'] ?
Remplace
par :
PS :
mysql est devenu obsolète depuis quelques années. Il faudrait le remplacer par du mysqli ou du PDO.
Ensuite, ce n'est pas une bonne idée de concaténer tes variables directement dans tes requêtes.
Tu es sur de ta variable $_SESSION['login'] ?
Remplace
list($pass) = mysql_fetch_array($sql);
par :
$pass=mysql_result($sql,0,'pass');
PS :
mysql est devenu obsolète depuis quelques années. Il faudrait le remplacer par du mysqli ou du PDO.
Ensuite, ce n'est pas une bonne idée de concaténer tes variables directement dans tes requêtes.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
axteure
Messages postés
62
Date d'inscription
samedi 15 août 2009
Statut
Membre
Dernière intervention
9 janvier 2017
3
22 avril 2013 à 15:46
22 avril 2013 à 15:46
Pour ma variable $_SESSION['login'], sa fonctionne car il y a avant un autre code php qui marche avec $_SESSION['login'].
Voici le form:
et le code php:
voila. Merci encore
Voici le form:
<form method="post" action="membre.php"> Mot de passe actuel :<br /><input type="password" name="pass"><br /><br /> Nouveau mot de passe :<br /><input type="password" name="newpass"><br /><br /> Répetez le nouveau mot de passe :<br /><input type="password" name="repeatnewpass"><br /><br /> <input type="submit" Value="Changer le mot de passe" name="submit">
et le code php:
<?php $base = mysql_connect ('mysql.hostinger.fr', 'u302086084_clem', 'gamearn'); mysql_select_db ('u302086084_bdd', $base); $sql = mysql_query("SELECT pass FROM membre WHERE login = " .$_SESSION['login'].""); $pass=mysql_result($sql,0,'pass'); if ($newpass == $repeatnewpass) { if (md5($password) == $pass) { $pass2 = md5($newpass); $sql= "UPDATE membre SET pass ='" .$pass2. "' WHERE login ='".$_SESSION['login']."'"; $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); echo "mot de passe changé"; } else { echo "Ancien mot de passe non valide"; } } else { echo "Les deux nouveaux mots de passe sont différents"; } ?>
voila. Merci encore
Guiver
Messages postés
262
Date d'inscription
mardi 30 novembre 2010
Statut
Membre
Dernière intervention
20 mai 2021
87
22 avril 2013 à 16:10
22 avril 2013 à 16:10
Cache vite tes identifiants de connexions à ta BDD !
As-tu encore l'erreur : Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource ?
si tu fais un :
dans ton php, il affiche bien le bon login et le bon pass en md5 ?
Le php que tu m'affiches c'est membre.php ?
ou c'est une fonction appelé en include() dans ton membre.php ?
Dans le deuxième cas, tu peux me passer les paramètres que tu envois à ta fonction ?
As-tu encore l'erreur : Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource ?
si tu fais un :
echo $_SESSION['login']. ' / '.$pass;
dans ton php, il affiche bien le bon login et le bon pass en md5 ?
Le php que tu m'affiches c'est membre.php ?
ou c'est une fonction appelé en include() dans ton membre.php ?
Dans le deuxième cas, tu peux me passer les paramètres que tu envois à ta fonction ?
axteure
Messages postés
62
Date d'inscription
samedi 15 août 2009
Statut
Membre
Dernière intervention
9 janvier 2017
3
22 avril 2013 à 17:26
22 avril 2013 à 17:26
j'ai changer mes identifiants merci ;)
j'ai l'erreur Warning: mysql_result(): supplied argument is not a valid MySQL result resource in /home/u302086084/public_html/membre.php on line 38
Quand je fais un echo, sa m'affiche juste mon pseudo / (rien) cela veut dire que j'ai un truc qui va pas avec pass :s $pass
le code php que je t'ai donné est bien contenu dans membre.php sans include()
Merci :)
j'ai l'erreur Warning: mysql_result(): supplied argument is not a valid MySQL result resource in /home/u302086084/public_html/membre.php on line 38
Quand je fais un echo, sa m'affiche juste mon pseudo / (rien) cela veut dire que j'ai un truc qui va pas avec pass :s $pass
le code php que je t'ai donné est bien contenu dans membre.php sans include()
Merci :)
Guiver
Messages postés
262
Date d'inscription
mardi 30 novembre 2010
Statut
Membre
Dernière intervention
20 mai 2021
87
22 avril 2013 à 17:44
22 avril 2013 à 17:44
Vérifie bien ta requête mysql stp.
Les noms des champs sont bons ?
Tu as bien un "pass" associé à ton utilisateur ?
Et j'y pense,
Se serait pas plutôt : (avec la variable entre simple quote)
Ensuite, tu as deux fois la variable $pass.
Pour finir, je vois pas comment tu récupères tes POST du-coup.
Ce qui nous fait donc, pour le HTML :
Et pour le php
Les noms des champs sont bons ?
Tu as bien un "pass" associé à ton utilisateur ?
Et j'y pense,
$sql = mysql_query("SELECT pass FROM membre WHERE login = " .$_SESSION['login']."");
Se serait pas plutôt : (avec la variable entre simple quote)
$sql = mysql_query("SELECT pass FROM membre WHERE login = '" .$_SESSION['login']."'");
Ensuite, tu as deux fois la variable $pass.
Pour finir, je vois pas comment tu récupères tes POST du-coup.
Ce qui nous fait donc, pour le HTML :
<form method="post" action="membre.php"> Mot de passe actuel :<br /><input type="password" name="passactuel"><br /><br /> Nouveau mot de passe :<br /><input type="password" name="newpass"><br /><br /> Répetez le nouveau mot de passe :<br /><input type="password" name="repeatnewpass"><br /><br /> <input type="submit" Value="Changer le mot de passe" name="submit">
Et pour le php
<?php $base = mysql_connect ('xxx', 'xxx', 'xxx'); mysql_select_db ('xxx', $base); $sql = mysql_query("SELECT pass FROM membre WHERE login = '".$_SESSION['login']."'"); $pass=mysql_result($sql,0,'pass'); $passactuel = $_POST['passactuel']; $newpass = $_POST['newpass']; $repeatnewpass = $_POST['repeatnewpass']; if ($newpass == $repeatnewpass) { if (md5($passactuel) == $pass) { $pass2 = md5($newpass); $sql= "UPDATE membre SET pass ='" .$pass2. "' WHERE login ='".$_SESSION['login']."'"; $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); echo "mot de passe changé"; } else { echo "Ancien mot de passe non valide"; } } else { echo "Les deux nouveaux mots de passe sont différents"; } ?>
axteure
Messages postés
62
Date d'inscription
samedi 15 août 2009
Statut
Membre
Dernière intervention
9 janvier 2017
3
22 avril 2013 à 17:59
22 avril 2013 à 17:59
Donc j'ai toujours l'erreur Warning: mysql_result(): supplied argument is not a valid MySQL result resource in /home/u302086084/public_html/membre.php on line 38
avec en dessous Ancien mot de passe non valide qui s'affiche directement au chargement de la page
C'est le $pass qui va pas, jcomprend pas trop quand tu dis est ce que le pass est bien associé a ton utilisateur...
et je ne comprend pas trop non plus la ligne $pass=mysql_result($sql,0,'pass');
Merci
avec en dessous Ancien mot de passe non valide qui s'affiche directement au chargement de la page
C'est le $pass qui va pas, jcomprend pas trop quand tu dis est ce que le pass est bien associé a ton utilisateur...
et je ne comprend pas trop non plus la ligne $pass=mysql_result($sql,0,'pass');
Merci
axteure
Messages postés
62
Date d'inscription
samedi 15 août 2009
Statut
Membre
Dernière intervention
9 janvier 2017
3
23 avril 2013 à 10:05
23 avril 2013 à 10:05
Guiver ?
23 avril 2013 à 10:53
23 avril 2013 à 10:57
23 avril 2013 à 10:59
Merci beaucoup du temps que tu as pris pour moi Guiver !!
23 avril 2013 à 11:54