Changer le mot de passe d'un membre
Résolu
valens1460
Messages postés
33
Date d'inscription
Statut
Membre
Dernière intervention
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour, voilà comme dis dans le titre je veux changer le mot de passe d'un membre mais cela ne fonctionne pas, j'ai tester mes if, eux fonctionne, donc se serais dans le SQL mais il me semble bon, donc je ne vois pas ou pourrais être mon erreur, si quelq'un à une idée?
voici le formulaire:
et voici mon traintement
voici le formulaire:
<section> <fieldset><legend>Changement du mot de passe</legend><br> <form action="change_mdp_post.php" method="post"> Pseudo :<input name="pseudoCh" id="pseudo" type="text" /> <br/><br/> Mot de passe :<input name="passCh" type="password" /> <br/><br/> nouveau mot de passe :<input name="nvMdp" type="password" /> <br/><br/> confirmation du nouveau mot de passe :<input name="confirmMdp" type="password" /> <br/><br/> <input type="submit" value="Changer son mot de passe" /> <input type="reset" value="Réinitialiser le formulaire" /> </form> <br> </fieldset> <a href="membre.php">Retour à la page membre</a> </section>
et voici mon traintement
<?php session_start(); if(($_POST["pseudoCh"]) || ($_POST["passCh"]) || ($_POST["nvMdp"]) || ($_POST["confirmMdp"])) { if(($_SESSION['login']) == ($_POST['pseudoCh'])) { if ( ($_POST["confirmMdp"]) == ($_POST["nvMdp"]) ) { try { $bdd = new PDO('mysql:host=sql2.olympe.in;dbname='*****', '*****', '******'); } catch(Exception $e) { die('Erreur : '.$e->getMessage()); } $req = $bdd->prepare(UPDATE membre SET pass_md5= '.$_POST["passCh"].' WHERE login = '. $_SESSION["login"]'); $req->execute(array($_POST["passCh"])); header ('Location: change_mdp.php'); }else { header ('Location: membre.php'); } }else { header('Location: index.php'); } }else { header('Location: Forum.php'); } ?>
A voir également:
- Changer le mot de passe d'un membre
- Changer dns - Guide
- Trousseau mot de passe iphone - Guide
- Mot de passe - Guide
- Mot de passe administrateur - Guide
- Mot de passe bios perdu - Guide
5 réponses
Salut salut,
La première chose qui doit empêcher l'exécution est à cette ligne :
Pour le premier paramètre tu ouvres avec une simple cote et les réutilises pour passer le nom de la base de donnée, donc la chaine de texte ne se ferme pas au bon endroit. Essaie comme ça :
La première chose qui doit empêcher l'exécution est à cette ligne :
$bdd = new PDO('mysql:host=sql2.olympe.in;dbname='*****', '*****', '******');
Pour le premier paramètre tu ouvres avec une simple cote et les réutilises pour passer le nom de la base de donnée, donc la chaine de texte ne se ferme pas au bon endroit. Essaie comme ça :
$bdd = new PDO('mysql:host=sql2.olympe.in;dbname=*****', '*****', '******');
valens1460
Messages postés
33
Date d'inscription
Statut
Membre
Dernière intervention
désolé c'est moi en métant les "*" qui a fait ça, mais pas dans mon code chez moi, donc le problème est bien ailleurs, désolé pour la faute de copie :s
Ok, il y a une autre faute de cote ici :
Les instruction SQL doivent être entourées de cotes :
Résolu? ===> [RESOLU]
$req = $bdd->prepare(UPDATE membre SET pass_md5= '.$_POST["passCh"].' WHERE login = '. $_SESSION["login"]');
Les instruction SQL doivent être entourées de cotes :
$req = $bdd->prepare('UPDATE membre SET pass_md5='.$_POST["passCh"].' WHERE login = '. $_SESSION["login"]);
Résolu? ===> [RESOLU]
Comme ceci?
if ( ($_POST["confirmMdp"]) == ($_POST["nvMdp"]) )
{
echo"juste apres le if de confirm";
try
{
$bdd = new PDO('mysql:host=sql2.olympe.in;dbname=2sf7gi5g', '2sf7gi5g', 'berderochet69');
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
echo "juste avant le SQL";
$req = $bdd->prepare('UPDATE membre SET pass_md5='.$_POST["passCh"].' WHERE login = '. $_SESSION["login"]);
$req->execute(array($_POST["passCh"]));
header ('Location: change_mdp.php');
Tu n'as aucun message d'erreur ?
Fais des echo des paramètres de tes if juste avant de rentrer dans la condition pour comprendre laquelle bloque l'exécution.
Fais des echo des paramètres de tes if juste avant de rentrer dans la condition pour comprendre laquelle bloque l'exécution.
La requête préparée me semble un peu étrange, tu prépares la requête en mettant directement les variables dans la chaîne.
Essaie avec ça :
Essaie avec ça :
$req = $bdd->prepare('UPDATE membre SET pass_md5= :passmd5 WHERE login = :login');
$req->bindParam(':passmd5', $_POST["passCh"], PDO::PARAM_STR);
$req->bindParam(':login',$_SESSION["login"], PDO::PARAM_STR);
$req->execute();
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question