Changer Mot de passe
Résolu
papyclic
Messages postés
446
Date d'inscription
Statut
Membre
Dernière intervention
-
papyclic Messages postés 446 Date d'inscription Statut Membre Dernière intervention -
papyclic Messages postés 446 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai mis en place une méthode pour que les utilisateurs puissent modifier leurs mot de passe.
Bien entendu ça ne fonctionne pas, alors je voudrais savoir si quelqu'un pourrait me donner un coup de main s'ils vous plait, ça serai très sympa de votre part.
En vous remerciant
Ma méthode "NewPass"
Mon formulaire qui devrait faire appel à la méthode NewPass de la class User
J'ai mis en place une méthode pour que les utilisateurs puissent modifier leurs mot de passe.
Bien entendu ça ne fonctionne pas, alors je voudrais savoir si quelqu'un pourrait me donner un coup de main s'ils vous plait, ça serai très sympa de votre part.
En vous remerciant
Ma méthode "NewPass"
public static function NewPass($id_adherent, $passActuel, $newPassUn, $newPassDe) { if(!empty($passActuel) AND !empty($newPassUn) AND !empty($newPassDe)) { if($newPassUn === $newPassDe) { $req = self::$db->prepare('SELECT * FROM tb_adherent WHERE id_adherent = :id_adherent'); $req->bindParam(':id_adherent', $id_adherent, PDO::PARAM_INT); $req->execute(); $donnees = $req -> fetch(PDO::FETCH_ASSOC); if($donnees['password'] === Security::hash($passActuel)) { $newPass = Security::hash($newPassUn); $req = self::$db->prepare('UPDATE tb_adherent SET password = :newPass WHERE id_adherent = :id_adherent'); $req -> bindParam(':newPass', $newPass); $req->bindParam(':id_adherent', $id_adherent, PDO::PARAM_INT); if($req -> execute()) { $resultat = 'Votre mot de passe a été changé avec succés.'; } else { $resultat = '<span class="error-info">Une erreur est survenue pendant la mise à jour de votre mot de passe.</span>'; } } else { $resultat = '<span class="error-info">Vous n\'avez pas saisi correctement votre mot de passe actuel,<br />veuillez recommencer.</span>'; } } else { $resultat = '<span class="error-info">Les champs "Votre nouveau mot de passe" et "Confirmer Nouveau Mot de passe" doivent être identiques,<br />veuillez recommencer.</span>'; } } else { $resultat = '<span class="error-info">Pour changer de mot de passe vous devez remplir tout les champs,<br />veuillez recommencer.</span>'; } return $resultat; }
Mon formulaire qui devrait faire appel à la méthode NewPass de la class User
<?php if(!empty($_POST['changerPass'])) { extract($_POST); echo '<div style="text-align:center;">'.User::NewPass($_SESSION['id_adherent'], $passActuel, $newPassUn, $newPassDe).'</div>'; } ?> <br/> <div class="perduMDP"> <form action="" methode="post"> <fieldset> <legend class="legend">Changer mon Mot de Passe</legend> <p>Mot de passe actuel :<br/> <input type="text" name="passActuel" value=""> </p> <p>Nouveau Mot de passe :<br/> <input type="text" name="newPassUn" value=""> </p> <p>Confirmer Nouveau Mot de passe :<br/> <input type="text" name="newPassDe" value=""> </p> <br/> <p> <input type="submit" name="changerPass" value="Envoyer"> </p> </fieldset> </form> </div>
A voir également:
- Changer Mot de passe
- Changer dns - Guide
- Trousseau mot de passe iphone - Guide
- Mot de passe - Guide
- Mot de passe administrateur - Guide
- Mot de passe bios perdu - Guide
4 réponses
Bonjour,
TU nous dis... <<ça ne marche pas>> .. ok .. mais encore ??
Qu'obtiens tu ?
As tu un message (retour de ta fonction) qui te dit sur quoi ça bloque ?
As tu testé ta requête en directe dans la BDD ?
Si tu n'a aucun retour venant de ta fonction.. as tu vérifié si au moins tes variables POST étaient correctement créées ? ( fais un print_r($_POST) avant ton IF )
Je me demande s'il ne te manquerait pas non plus un ECHO devant l'appel à ta fonction...
TU nous dis... <<ça ne marche pas>> .. ok .. mais encore ??
Qu'obtiens tu ?
As tu un message (retour de ta fonction) qui te dit sur quoi ça bloque ?
As tu testé ta requête en directe dans la BDD ?
Si tu n'a aucun retour venant de ta fonction.. as tu vérifié si au moins tes variables POST étaient correctement créées ? ( fais un print_r($_POST) avant ton IF )
Je me demande s'il ne te manquerait pas non plus un ECHO devant l'appel à ta fonction...
//le temps des tests .. print_r($_POST); if(isset($_POST['changerPass']) && !empty($_POST['changerPass'])) { extract($_POST); $resultat = User::NewPass($_SESSION['id_adherent'], $passActuel, $newPassUn, $newPassDe); echo '<div style="text-align:center;">'.$resultat.'</div>'; }else{ echo "changerPass est vide ou n'existe pas !"; }
Bonjour
En fait lorsque j'envoie mon formulaire aucune erreur retournée, par contre l'URL affiche toutes les variables.
Merci pour ton aide
En fait lorsque j'envoie mon formulaire aucune erreur retournée, par contre l'URL affiche toutes les variables.
Merci pour ton aide
index.php?passActuel=&newPassUn=&newPassDe=&changerPass=Envoyer