Salut a tous,

bon je suis passé en v 1.2.5 de cake et j'ai quelques soucis.

En effet j'ai un formulaire d'inscription avec un mot de passe et sa confirmation, le problème c'est que ledit champs est crypté automatiquement donc en cas d'erreur on reaffiche le formulaire mais il contient le mdp crypté donc ça ne va plus ...

Pour y remédier j'ai voulu crypter le mot de passe juste avant l'entrée en base :

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
22
23
24
25
26
27
28
29
function inscription() {
      $this->Client->unbindModel(array('hasMany' => array('Commande')));
      //Si le formulaire a été posté
      if(!empty($this->data)) {
         //Créaton du client
         $this->Client->create($this->data);
         //Validation des données
         if(!$this->Client->validates()) {            
            $this->validateErrors($this->Client);            
         }
         else {            
            $mdp = $this->data['Client']['mot_de_passe'];            
            // Nettoyage de la saisie
            App::import('Sanitize');
            $this->data['Client']['mot_de_passe'] = Security::hash($this->data['Client']['mot_de_passe']);
            $this->data['Client']['confirmer_mot_de_passe'] = Security::hash($this->data['Client']['confirmer_mot_de_passe']);
            debug($this->data);
            $this->data = Sanitize::clean($this->data);
            //Hashage du mot de passe avant entrée BDD            
            if($this->Client->save($this->data)) {
               $this->Flash("Membre enregistré correctement.", '/clients');               
               //Envoyer un email de confirmation
               $this->_envoiMailNouvelUtilisateur($this->data['Client']['adresse_mail'],$mdp);               
            }
            else
                $this->log("Client::inscription echec de la sauvegarde");
         }
      }
   }
Maintenant j'ai 2 problèmes :

- Le mdp ne correspond jamais a sa confirmation car il est crypté quand meme ....
- Il ne devrait pas se crypter avant l'entrée en base ...donc il semble y avoir une double vérification..

Au passage je précise que j'ai le problème avec la version 1.2.5 (qui d'ailleurs en a d'autre comme la fonction unbindmodel() qui ne fonctionne plus ...)

merci de votre aide