Bien bonjour à toutes la communauté Grafikart !

Voici mon problème, depuis la version 1.3 les champ "password" sont automatiquement crypter.

Mons soucis est le suivant,

j'ai un formulaire d'enregistrement, qui dépend du model User.

class User extends AppModel{

        var $name = 'User';
                var $belongsTo = 'Profile';

                var $validate = array(
                    'password' => array(
                        'rule' => array('minLength', 8),
                        'required' => true,
                        'allowEmpty' => false,
                        'message' => 'Votre password dois comporter au min 8 caractère.'
                        ),
                    'email' => array(
                        'rule' => array('email', true),
                        'required' => true,
                        'allowEmpty' => false,
                        'message' => 'Veillez entrez un email correct !'
                        )
                    );
                /*function beforeSave()
                {
                    $this->data$this->name]'password'] = Security::Hash($this->data$this->name]'password'],null,true);
                    return true;
                }*/
        }

echo $form->create('User',array('url'=>array('action'=>'register')));
//echo "<span class='snipe'>".$form->input('Profile.name', array('label'=>'Nom du profile :')."</span>");
echo $form->input('Profile.profile_name', array('label'=>'Nom du profile :'));
echo $form->input('User.email', array('label'=>'Adress Email :'));
echo $form->input('User.password', array('label'=>'Password :'));
echo $form->end("Envoyer");

Lorsque je simule une inscription avec une adresse email erronée, la règle de validation "email" déclanche une erreur.

Mon formulaire "register" se recharge avec les données précédente.

Problèmes :

  • le champ password se recharge avec sa valeur crypter !
  • Le vérification d'un password d'une taille de 8 charactère ne fonctionne pas, il test la valeur du code crypter, elle fait plus de 8 caractère :(

Si vous avez rencontrer le même problème, n'hésiter pas !

D'avance,

Merci

Zaarkan

3 réponses


Grafikart
Réponse acceptée

Alors qqun a eu le même problème que toi. Ma solution est d'utiliser un autre champ que password pour éviter qu'il encode automatiquement .
Par exemple un champ "pass" et dans le controller tu fais repasser le pass dans $data'User']'password'] en pensant à remettre la fonction beforeSave du coup :)

zaarkan
Auteur
Réponse acceptée

Merci bien !

je vais tester cela :)

zaarkan
Auteur
Réponse acceptée

Fonctionne parfaitement !

Problème résolu merci !