Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1742 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Membre change son mot de passe

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Membre change son mot de passe

n°2065449
iOniOn95
Posté le 23-03-2011 à 11:00:24  profilanswer
 

Bonjour à tous,  
Je fais appel à vous car j'ai un petit soucis avec mon code. Je m'explique :
Lorsqu'un membre est connecté, il a la possibilité de changer son mot de passe, cependant, le code contient quelques erreurs.
 
Voici mon code :
changepassword.php

Code :
  1. <div align="center">
  2. <?php
  3. if (!isset($_SESSION['login']))
  4. {
  5. header ('Location: index.php');
  6. exit();
  7. }
  8. $login = htmlentities(trim($_SESSION['login']));
  9. if (isset($_POST['old_pass']) && isset($_POST['new_pass2']) && isset($_POST['new_pass']))
  10. {
  11. $old_pass = $_POST['old_pass'];
  12. $new_pass2 = $_POST['new_pass2'];
  13. $new_pass = $_POST['new_pass'];
  14. $base = mysql_connect ('', '', '');
  15. mysql_select_db ('suivi des absences', $base);
  16. if($new_pass == $new_pass2)
  17. {
  18.  $verif_pass = mysql_query("SELECT password FROM membres WHERE login='".$_SESSION['login']."'" );
  19.  $array_verif_pass = mysql_fetch_array($verif_pass);
  20.  $array_pass = $array_verif_pass['password'];
  21.  if($array_pass == $old_pass)
  22.  {
  23.   mysql_query("UPDATE membres SET password='".mysql_escape_string($new_pass)."' WHERE login='".$_SESSION['login']."'" );
  24.   mysql_close($base);
  25.  }
  26.  echo 'Votre mot de passe a bien été enregistré';
  27. }
  28. else
  29. echo 'les mots de passe ne sont pas identiques';
  30. }
  31. else
  32. echo 'veuillez remplir tous les champs le formulaire';
  33. ?>
  34. <form method="post">
  35.     <p><strong><u>Changement de mot de passe</u></strong></p>
  36. <table >
  37.     <tr>
  38.         <td >Ancien mot de passe</td>
  39.         <td><input type="text" id="old_pass" name="old_pass" /></td>
  40.     </tr>
  41.     <tr>
  42.         <td>Nouveau mot de passe</td>
  43.         <td ><input type="text" id="new_pass" name="new_pass" />
  44.         </td>
  45.     </tr>
  46.     <tr>
  47.         <td>Confirmer le mot de passe</td>
  48.         <td><input type="text" id="new_pass2" name="new_pass2" /></td>
  49.     </tr>
  50.     <tr>
  51.         <td><p>&nbsp;</p>
  52.         </td>
  53.         <td>
  54.           <input type="submit" />
  55.           <input type="reset" />
  56.         </td>
  57.     </tr>
  58. </table>
  59. </form>
  60. <form id="form3" name="form2" method="post" action="parametres.php">
  61.     <div align="center">
  62.      <p><input type="submit" name="Annuler" id="Annuler" value="Retour" /></p>
  63.     </div>
  64. </form>
  65. </div>


 
Les erreurs que je rencontre :
 
1) lorsque je vais sur cette page (changepassword.php), il m'affiche directement "veuillez remplir tous les champs le formulaire", alors que si je rentre exprès que l'ancien mot de passe, il me met comme message d'erreur "les mots de passe ne sont pas identiques".  
 
2) lorsque je tape dans ancien mot de passe un mot de passe bidon, et que je remplis le reste correctement, il me met "votre mot de passe a bien été modifié" alors que quand je me reconnecte, il n'a pas prit la modification. En gros, il ne m'informe pas que ancien mot de passe est différent de ce que j'avais écrit.
 
Je ne sais pas si j'ai bien été claire, si vous avez des questions, n'hésitez pas !
Merci de bien vouloir m'aider !


Message édité par iOniOn95 le 23-03-2011 à 14:30:19
mood
Publicité
Posté le 23-03-2011 à 11:00:24  profilanswer
 

n°2065849
quanph0211​84
Posté le 24-03-2011 à 15:57:41  profilanswer
 

Bonjour,
- Avec la 1ère IF, bien sûr que vous avez directement "veuillez remplir tous les champs le formulaire" parce que isset($_POST) == false
 
- 2è IF, la condition est: $new_pass == $new_pass2 , ça dit rien au niveau de l'ancien mot de passe, vous rentrez ou rentrez pas l'ancien mot de passe, la phrase affiche en fonction du test $new_pass == $new_pass2
 
Corrigez vous des erreurs, et refaites des tests, je ne vois rien du tout des fautes MySQL :) ou ma connaissance est ...

n°2065856
iOniOn95
Posté le 24-03-2011 à 16:23:35  profilanswer
 

Bonjour, merci de ta réponse quanph021184 !
Cependant, je ne sais pas comment dire : 'Si un des champs est vide, Alors afficher "Veuillez remplir tous les champs" '
De plus, je ne sais pas comment dire et ou placer le code : 'Si l'ancien mot de passe tapé est différent de l'ancien mot de passe actuel, alors afficher "mot de passe incorrecte" '.
 
Sinon, le code ne contient aucune fautes, il fonctionne parfaitement, il y a juste quelques incohérences que je n'arrive pas à corriger :)

n°2065869
quanph0211​84
Posté le 24-03-2011 à 17:17:02  profilanswer
 

bon, vous nommer le bouton submit, et ajoutez isset($_POST['nom_bouton_submit'] au debut, pour faire un test si on clique sur le bouton ou pas encore.
oubliez pas des tests si des champs =="", j'ai un petit conseil: écrivez vous le schéma avant écrire des codes :D ça peut appliquer pour tous les langages et ça va vous donner une bonne habitude :)  
Après, je pense que vous allez le faire vous même :D

n°2065965
iOniOn95
Posté le 25-03-2011 à 09:34:17  profilanswer
 

Ok merci, je vais tester ça!

n°2065966
iOniOn95
Posté le 25-03-2011 à 09:46:10  profilanswer
 

Tout fonctionne, j'ai remplacé : if($new_pass == $new_pass2 && $old_pass)  par  if($new_pass == $new_pass2 && $old_pass == $_SESSION['password']) !
Merci pour ton aide =)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Membre change son mot de passe

 

Sujets relatifs
desallouer mem allouée par un membreRéinitialisation de mot de passe
[Php] Passe une variable et un int dans un Textareamettre plusieur chiffres dans un textbox (mot de passe)
caractère qui ne passe pas (pb encodage ?)[Blogger] Une bannière qui ne passe pas
Décrypter mot de passe de mes USERS ???'getAttribute' tout bête, mais qui ne passe pas
[AS] Comment récupérer la taille de la fenêtre quand elle change ?paramètre passé à __str__ [résolu]
Plus de sujets relatifs à : Membre change son mot de passe


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR