Bonjour, j'ai suivi le premier tp de gestion des utilisateurs de celui de grafikart. Et je suis tombé sur un bug que je n'ai pas trouvé de solution. Je met en à votre disposition une image qui explique tout.

Quand je veux m'inscrire avec un faux username et je confirme alors là le formulaire login prend ce paramètre par erreur !
Vous savez d'où peut venir ce conflit.
Merci bien.

9 réponses


lakamark
Réponse acceptée

Bonjour
Je pense que le problème est l'url de traitement des donné lors de la création du formulaire :
sur le formulaire que tu as dans le menu

<?= $this->Form->create('Users',['url'=>['controller'=>'users','action'=>'login']]) ?>

Par défaut CakePhp utilise la page courente pour faire les traitements. Il faut que tu configure le paramètre url dans les options de la fonction create() du helper Form.

Voici le lien de la doc :
http://book.cakephp.org/2.0/fr/core-libraries/helpers/form.html

Bonne chance!

Cordialement

Lartak
Réponse acceptée

Bonjour.
C'est normal que tu aies l'erreur dans les deux formulaires, étant donné que les deux champs des deux formulaires se nomment pareil (username) dans la page, du coup CakePHP retourne l'erreur dans les deux formulaires.
Pour que ce ne soit plus le cas, il te faudrait donner deux noms différents pour le champ dans les deux formulaires.

sanmed02
Auteur

J'ai ajouter pour tous les forms du site le controlleur et l'action, mais je trouve toujours le problème... peut etre une autre une solution?

Est-ce que tu as le code source de tes règle de validation. En passant, tu as écrit dsdsds@ et non dsadd@esdsdsd.com dans le formulaire.

sanmed02
Auteur

Oui les voici ,

    public $validate = array(
        'username' => array(
            'alpha' => array(
                'rule' => '/^[a-z0-9A-Z]*$/',
                'message' => 'Votre nom d\'utilisateur n\'est pas valide '
            ),
            'unique' => array(
                'rule' => 'isUnique',
                'message' => 'Cet identifiant existe deja ! '
            )
        ),
        'mail' => array(
            'mail' => array(
                'rule' => 'email',
                'message' => 'Cet email n\'est pas valide'
            ),
            'unique' => array(
                'rule' => 'isUnique',
                'message' => 'Cet email existe deja ! '
            )
        ),
        'password' => array(
            'rule' => 'notEmpty'
        ),
        'password2' => array(
            'rule' => 'indenticalFields',
            'message' => 'Votre mot de passe ne convient pas à l\'originale'
        ),
        'avatar' => array(
            'rule' => 'isJpg',
            'message' => 'Vous devez insérer une image de type jpg'
        )
    );

Tu parles du champ email ou de l'username? pour le champ email, je faisais juste des tests, pour voir si ça fonctionne bien.

Bonjour,
Est-ce que tu as le code source de la fonction qui permette au utilisateur (controller). Peut-être c'est bizarre que le bug ce trouve sur le champ username

sanmed02
Auteur

Désolé mais j'ai du mal à comprendre ton propos ? peut tu expliquer un plus clair?

Ok En regardant l'image que tu as dans ton article est le problème est le champ username qui cause problème (peut-être) Est-ce que tu peut faire un debug() dans ta fonction qui permet de créer un compte d'utilisateur pour voir comment les donné son récupéré avant d'être traité par les règle de validation. Tes règles de validation sont correcte à mon avis.

sanmed02
Auteur

Merci ;) mais il se trouve que le nom du formulaire est celui qui est inscrit dans la table users ... du coup si je veux le changer pour l'un des formulaire, ça va causer un problème. n'est ce pas?