IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Zend_Form PHP Discussion :

Vérification de mot de passe [ZF 1.11]


Sujet :

Zend_Form PHP

  1. #21
    Membre Expert
    Avatar de 5h4rk
    Homme Profil pro
    CTO at TabMo
    Inscrit en
    Février 2011
    Messages
    813
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : CTO at TabMo
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2011
    Messages : 813
    Par défaut
    Justement la normalement tu devrais pouvoir avoir le champs vide même avec le setRequired c'est le but du code que je t'ai ajouté.

  2. #22
    Membre averti
    Inscrit en
    Février 2012
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Février 2012
    Messages : 35
    Par défaut
    J'ai essayé de le rajouter à la fin, et ça ne marchait pas. Par contre, si je le rajoute avant le setLabel, setRequired addFilter ou addValidator, il me dit par la suite que mon "$pass1" n'est plus un objet.

    Si je résume bien, mon code au final devrait ressembler à ça ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    $pass1 = $this->createElement('password', 'pass1');
    $pass1->setLabel('Mot de passe')
           ->addFilter('StripTags')
           ->addFilter('StringTrim')
           ->setRequired(true)
           ->setAllowEmpty(true)
           ->autoInsertNotEmptyValidator(false);
     
    $pass2 = $this->createElement('password', 'pass2');
    $pass2->setLabel('Confirmer mot de passe')
           ->addFilter('StripTags')
           ->addFilter('StringTrim')
           ->addValidator('identical', true, array('token' => 'pass1'));

  3. #23
    Membre Expert
    Avatar de 5h4rk
    Homme Profil pro
    CTO at TabMo
    Inscrit en
    Février 2011
    Messages
    813
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : CTO at TabMo
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2011
    Messages : 813
    Par défaut
    Non du tout, il devrait ressembler à ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    $pass1 = $this->createElement('password', 'pass1');
    $pass1->setLabel('Mot de passe')
           ->addFilter('StripTags')
           ->addFilter('StringTrim');
     
    $pass2 = $this->createElement('password', 'pass2');
    $pass2->setLabel('Confirmer mot de passe')
           ->addFilter('StripTags')
           ->addFilter('StringTrim')
           ->setAllowEmpty(true)
           ->setRequired(true)
           ->autoInsertNotEmptyValidator(false)
           ->addValidator('identical', true, array('token' => 'pass1'));

  4. #24
    Membre averti
    Inscrit en
    Février 2012
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Février 2012
    Messages : 35
    Par défaut
    Oups, je me suis trompé dans mon copier/coller sur le forum
    C'est bien ce que j'avais écrit dans mon code, mais il me retourne
    Citation Envoyé par Zend
    Fatal error: Call to a member function addValidator() on a non-object
    J'ai essayé en inversant les 2 dernières lignes, mais dans ce cas le setRequired m'empêche de laisser le champ vide
    Pareil si je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $pass2 = $this->createElement('password', 'pass2');
    $pass2->setLabel('Confirmer mot de passe')
             ->addFilter('StripTags')
             ->addFilter('StringTrim')
    	 ->setAllowEmpty(true)
    	 ->setRequired(true)
    	 ->autoInsertNotEmptyValidator(false);
    $pass2->addValidator('identical', true, array('token' => 'pass1'));
    Edit: Ah c'est bon, mon problème est résolu. J'ai regardé la doc pour
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ->setAllowEmpty(true)
    ->autoInsertNotEmptyValidator(false)
    et je me suis aperçu que par défaut, ->setAllowEmpty est à true. J'ai donc testé ce qu'il faisait si je le mettais à false, et ça a marché ! Par contre, je dois enlever le setRequired et autoInsertNotEmptyValidator n'a pas l'air d'y changer grand chose, je l'ai donc viré.

    Merci de votre aide !

  5. #25
    Membre Expert
    Avatar de 5h4rk
    Homme Profil pro
    CTO at TabMo
    Inscrit en
    Février 2011
    Messages
    813
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : CTO at TabMo
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2011
    Messages : 813
    Par défaut
    C est le true du addValidator qui doit empecher le bon fonctionnement du code que je t ai donné.
    Car avec false tout fonctionne comme tu voulais.

  6. #26
    Membre averti
    Inscrit en
    Février 2012
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Février 2012
    Messages : 35
    Par défaut
    J'ai essayé avec false et ça ne marchait pas non plus. Mais bon, j'ai trouvé plus simple, il n'y a pas de problème avec la méthode que j'ai utilisé non ?

    J'aimerais savoir, à quoi correspond le 2ème paramètre du addValidator, le booléen ?

  7. #27
    Membre Expert
    Avatar de 5h4rk
    Homme Profil pro
    CTO at TabMo
    Inscrit en
    Février 2011
    Messages
    813
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : CTO at TabMo
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2011
    Messages : 813
    Par défaut
    Si tout fonctionne pour toi, reste comme ça, mais le comportement est tout de même bizarre, car avec ce que tu as mis tu ne devrais pas pouvoir laisser vide, je pense que c'est du à un enchaînement de validateurs, tu devrais peut être reprendre pas à pas.

    J'ai dis plus haut que le deuxième paramètre correspond à casser ou non la chaîne de validation.

  8. #28
    Membre averti
    Inscrit en
    Février 2012
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Février 2012
    Messages : 35
    Par défaut
    Aucune idée le code que tu as mis là c'est exactement ce que j'ai fait, mis à part les modifications que j'ai cité.

    Mais tu entends quoi par "casser" ? Comme un explode() ?

    Edit : J'ai trouvé le passage dans la doc qui confirme que mon code a un comportement normal
    setAllowEmpty($flag) and getAllowEmpty() allow you to modify the behaviour of optional elements (i.e., elements where the required flag is FALSE). When the 'allow empty' flag is TRUE, empty values will not be passed to the validator chain.

  9. #29
    Membre Expert
    Avatar de 5h4rk
    Homme Profil pro
    CTO at TabMo
    Inscrit en
    Février 2011
    Messages
    813
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : CTO at TabMo
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2011
    Messages : 813
    Par défaut
    Je sais très bien ce que fait setAllowEmpty, ne t'inquiète pas la dessus.

    Ce que j'aimerai que tu explique (clairement) où le comportement de tout ce que tu as mis est normal.
    Car là pour le moment, tu dis ça ça fait ça, si je le mets pas je ne sais pas si ça fonctionne. Tu es le seul a pouvoir nous dire le comportement exacte étant donné que tu es en situation réelle.

    Nous avons pris la peine de détailler chaque point que nous avons indiqué, je souhaiterai que tu en fasse autant.

    Merci

  10. #30
    Membre averti
    Inscrit en
    Février 2012
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Février 2012
    Messages : 35
    Par défaut
    Ce que j'ai compris là
    When the 'allow empty' flag is TRUE, empty values will not be passed to the validator chain.
    C'est que s'il est passé à true, le validateur n'est pas pris en compte si le champ est vide, c'est le problème que j'avais, et que tu as dit plus haut.
    Sous entendu, s'il est passé à false, le validateur sera pris en compte même si le champ est vide. Je précise aussi que allow empty est par défaut à true.

    Du coup, si je ne mets rien dans "pass2" et que je remplis "pass1", il va comparer la chaine, et comme les 2 champs n'ont pas la même valeur (un vide et un rempli) il passe par le validateur et me retourne l'erreur.

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Vérification de mot de pass multiple.
    Par Sytec373 dans le forum VB.NET
    Réponses: 12
    Dernier message: 02/06/2010, 23h09
  2. [XL-2003] Vérification de mot de passe en Vba
    Par NEC14 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 18/06/2009, 10h51
  3. Génération et vérification de mots de passe
    Par Invité dans le forum Sécurité
    Réponses: 1
    Dernier message: 15/06/2009, 01h21
  4. Vérification de mot de passe
    Par kh-san dans le forum Général JavaScript
    Réponses: 16
    Dernier message: 02/09/2007, 00h33
  5. Vérification de mot de passe et regex
    Par joseph_p dans le forum Collection et Stream
    Réponses: 5
    Dernier message: 21/03/2006, 11h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo