Bonjour à tous.
Je précise, je début en zend et en poo, j'achève ma deuxième semaine d'apprentissage (enfin, j’apprends toute seule, car pas encore de cours)
Et donc, comme dit dans mon précédent post, je m'exerce sur la création d'un petit site internet quelconque.
Je me penche sur la gestion de compte, dont la modification de mot de passe avec un formulaire tout simple:
Ancien MDP - Nouveau MDP - Vérification MDP
comme vous l'aurez compris, l'ancien MDP doit correspondre à celui du compte qui est connecté.
Et le Nouveau et Verif, doivent être identique.
Mon formulaire est fonctionnel, mais j'ai l'impression d'avoir mal codé ça, enfin que ça fait pas propre au niveau de mon controller que voici:
Au niveau de la vérification de l'ancien mot de passe, je compare ce qui est écrit dans le formulaire et ce qui est en session. Puis je réédite la session.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 if ($form->isValid($formData)) { $newTab = new Gestion_Model_DbTable_Mdp(); $mdp_actuel = Zend_Auth::getInstance()->getStorage()->read()->mot_passe; $mdp_form = md5($form->mot_passe->getValue()); if($mdp_actuel===$mdp_form) { $newTab->modifUser($form); $auth = Zend_Auth::getInstance()->getStorage()->read(); $auth->mot_passe = md5($form->mot_passe_nouveau->getValue()) ; $authStorage = Zend_Auth::getInstance()->getStorage(); $authStorage->write($auth); $this->_redirect($this->urlRetour); }else{ $errorMessage = "Ancien mot de passe incorrect"; } }
Je sais pas si c'est une bonne idée, si j'aurais pas du simplement récupérer le mdp de l'utilisateur en allant le chercher dans la BDD plutot que la session, mais ça me paraissait plus long, ... quoique j'aurais pas eu à remodifier la session ensuite, pour éviter d'avoir une erreur si la personne lambda édite 2 fois de suite son mdp.
Enfin bref, ça me parait un peu brouillon, quelqu'un peut me dire si mon code peut être amélioré, ou si ma solution est tout à fait correcte?
Edit: J'ai éditer le script histoire de mettre juste la partie intéressante, et non tous le code.
Partager