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

Symfony PHP Discussion :

Regex mot de passe ne fonctionne pas


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 129
    Par défaut Regex mot de passe ne fonctionne pas
    Bonjour à tous,

    Je n'arrive pas à savoir pourquoi cette Regex de mot de passe ne fonctionne pas, elle est sensée contrôler :

    -Au minimum 8 caractères
    - Une majuscule
    - Une minuscule
    - Un chiffre
    - Un caractère spécial

    J'ai essayé sur regex101 et il me signale le no match dès le début si je prends par exemple "Coucou1!' ... Que fais-je mal ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    'constraints' => new Regex(
                        pattern: '^$S*(?=S{8,})(?=S*[a-z])(?=S*[A-Z])(?=S*[d])(?=S*[W])S*$',
                        match: true,
                        message: "Votre mot de passe doit comporter au moins huit caractères, dont des lettres majuscules et minuscules,ne pas contenir d'espace, et au moins un chiffre et un symbole !@#$%&*()-+=^."
                    ),
    Merci d'avance pour vos réponses

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 156
    Par défaut
    Bonjour,

    Pour essayer d'aider, tu peux tenter la syntaxe suivante stp :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    'constraints' => array(
        new Assert\Regex(array(
            'pattern' => '/^$S*(?=S{8,})(?=S*[a-z])(?=S*[A-Z])(?=S*[d])(?=S*[W])S*$/',
            'message' => '...'
        )
    ),
    Qu'est ce que ça donne ?

  3. #3
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 129
    Par défaut
    Bonjour,

    Ta solution ne donne malheureusement rien...

    En plus du fait que la pattern ne semble rien faire, j'observe que le mot de passe est hashé et quand même enregistré en bdd... Pourtant le formulaire utilise bien if() issubmitted() et isvalid() et j'ai le message d'erreur personnalisé affiché ...

    Le formulaire n'étant pas validé pourquoi enregistre t'il quand même les données en bdd ? (J'utilise le security-bundle).

    C'est bizarre non ?

    Je vais essayer de décomposer la pattern groupe par groupe

    J'ai oublié de préciser que j'étais en version 6.2... Je vais tenter de monter en 6.3 pour voir...

  4. #4
    Expert confirmé Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 986
    Par défaut
    Tu m'étonnes qu'elle marche pas la pattern vue que c'est n'importe nawak!
    La pattern est sensée être passer à la fonction preg_match qui non seulement ne matchera jamais la moindre chaîne quelqu'elle soit, mais en plus te renverra false puisque d'entrée de jeu il manque les délimiteurs (que merou19 à rajouter)!

    D'aprés les indices laissés, la pattern recherchée serait:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    'pattern' => '/\A(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[!@#$%&*()+=^.-])\S{8,}\z/'
    (J'ai mis le point dans les "caractères spéciaux" (ce qui ne veut pas dire grand chose au passage) en me fiant au message, mais c'est peut-être le point final de la phrase, qui sait. Éventuellement remplace [!@#$%&*()+=^.-] par \W ou [\W_]suivant ce que tu veux autoriser.)

  5. #5
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 129
    Par défaut
    Oui, les délimiteurs ont été zappés pendant le copier-coller ... Mea Culpa

    En tout cas un grand merci à vous car ça marche impecc !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. ssh sans mot de passe ne fonctionne pas sous linux debian
    Par michel.semal dans le forum Sécurité
    Réponses: 18
    Dernier message: 01/12/2021, 14h34
  2. c# textbox évènement regex mot de passe
    Par Teatimerelax dans le forum C#
    Réponses: 1
    Dernier message: 03/12/2009, 23h07
  3. C# MaskedTextBox ou Regex mot de passe net
    Par Teatimerelax dans le forum C#
    Réponses: 5
    Dernier message: 03/12/2009, 12h58
  4. [MySQL] le mot de passe ne tient pas compte des majuscules
    Par jeanfi77 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 28/03/2007, 16h17
  5. [Formulaire]Formulaire login / mot de passe ne marche pas
    Par crissud dans le forum Sécurité
    Réponses: 2
    Dernier message: 22/03/2007, 21h54

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