Expression regulière

Résolu
Bonjour,

Je dois faire un système de matricule dans un formulaire que visiteur dois remplir, mais je n'en sais pas trop sur les expressions régulières.
Je m'explique, je dois faire en sorte qu'un membre s'enregistre dans la base des données qu'il puisse avoir son matricule à lui par exemple : BIG001, BIG002 ainsi de suite mais je ne sais pas quelle méthode utilisé pour éviter que l'utilisateur mette n'importe quoi du genre BLA001 au lieu du préfixe que j'ai prévu pour ma base des données (BIG).

Merci d'avance.

2 réponses

  1. Contributeur
    Si ton matricule ne change pas (si c'est toujours BIG), tu définis le champ comme un champ numérique, et tu crées un masque d'encodage/d'affichage sous le format BIG000.

    Tes users seront invités à choisir un matricule à six positions et avec trois chiffres, qui commencera toujours par BIG.
    0
    1. Bruce dans ce cas dans ma base des données je vais que la suite des chiffres et non le préfixe BIG ?
      0
    2. Contributeur
      Tu as oublié le verbe dans ta phrase, non ? Si tu pouvais expliquer ce que tu veux, j'en serais ravi :-)

      Si tu utilises Access, ouvre la table en mode "Création", sélectionne ton champ et défini le comme nombre (entier éventuellement). En bas de la fenêtre, dans l'onglet "Général" la seconde propriété est le format. Tu écris "BIG"000 (guillemets compris) dans cette case.
      0
    3. Han! je te comprend maintenant mais dommage que j'utilise mysql et php.
      0
    4. Contributeur
      Ok, alors le format du champ se passe directement dans le code HTML. Dans les propriété du formalaire, utilises la balise "value"

      <input type="text" name="time" value="BIG000" />


      ...et dans ton code php, tu mets une boucle de contrôle.

      la syntaxe exacte dépend du code que tu as déjà écrit, mais l'esprit est celui là.
      0
    5. Ok, je vais essayé et je te donnerai la suite. Merci beaucoup.
      0
  2. Contributeur
    Hello,

    Il faudrait faire une double vérification : Javascript et PHP.
    Javascript : pour signaler de suite la faute à l'utilisateur.
    PHP : parce que la vérification Javascript peut facilement être contournée.

    Donc à la validation de ton formulaire, il faut que tu utilises la méthode onSubmit() (qui doit renvoyer true (formulaire exécuté ensuite) ou false (arrêt du traitement)). Dans cette méthode tu récupères ton champ et tu vérifie son format à l'aide d'une expression régulière (monchamp.match(ma regexp))

    En PHP pareil avec la méthode preg_match().

    Dans ton cas l'expression régulière serait : #^BIG\d{3}$#
    Mihawk
    "Tant qu'on ne fait pas, on ne sait pas."
    0
    1. Merci Mihawk, j'ai vite compris l'expression régulière mais pour faire le script en php avec cette expression je ne sais pas si je vais m'en sortir, bon que tu as dis "Tant qu'on ne fait pas, on ne sait pas". je vais essayé et je te donnerai la suite très bientôt. Merci une fois de plus.
      0
    2. Contributeur
      Sous PHP, c'est on ne peut plus simple :

      <?php
         if (isset($_POST['monChamp']) && preg_match("#^BIG\d{3}$#", $_POST['monChamp'])){
            // On continue le traitement
         } else {
            // Cas ou le POST n'existe pas ou si le champ ne respecte pas le format
         }
      ?>
      0
    3. Merci infiniment Mihawk pour ton aide merci beaucoup.
      0
    4. Contributeur
      Tant mieux si tu as réussi :-)
      Passe le sujet en résolu si c'est OK.
      0
    5. Oui, c'est réussi thanks encore.
      0