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

Langage PHP Discussion :

Formulaire, expressions régulières


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 58
    Points : 22
    Points
    22
    Par défaut Formulaire, expressions régulières
    Bonjour à tous, un petit problème sur un formulaire et la validation de champs avec les expressions régulières, voici le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
     
    /* REGEX */
     
        $valid_email = '/^[[:alnum:]_.-]+"."@"."[[:alnum:]_.-]+\."."([[:alnum:]]{2,3})$/';
    	$valid_cp = '/^((0[1-9])|([1-8][0-9])|(9[0-8]|(2A)|(2B))[0-9]{3}$/';
        $valid_telephone = '/^0[1-68][0-9]{8}$/';
     
    /* Traitement de vérification des champs vides ou invalides (téléphone et/ou email et/ou url) Conditions de mauvaises réponses (champ vide par exemple) */
     
    if ($nom == '' ||
     
    	$prenom == '' ||
     
    	$sexe == '' ||
     
    	$naissance == '' ||
     
    	$adresse == '' ||
     
    	$ville == '' ||
     
    	$code_postal == '' || !(preg_match($valid_cp,$code_postal)) ||
     
    	$telephone == '' || !(preg_match($valid_telephone,$telephone)) ||
     
    	$email == '' || !(preg_match($valid_email, $email)) ||
     
    	$course = 0 || ($course=range(4,6) && ($equipier1 =='' || $equipier2=='') )
    	)
     
        {
     
            /* Action à adopter */
     
    ?>
     
    <h4>Informations incomplètes</h4>
     
    <p>Un (ou plusieurs) champ(s) obligatoire(s) n'a(ont) pas été correctement rempli(s).</p>
     
    <?php
     
            if ($nom == '') { print "<p>Vous n'avez pas précisé votre nom</p>\n";}
     
            if ($prenom == '') { print "<p>Vous n'avez pas précisé votre nom</p>\n";}
     
    		if ($sexe == '') { print "<p>Vous n'avez pas précisé votre sexe</p>\n";}
     
    		if ($naissance == '') { print "<p>Vous n'avez pas précisé votre date de naissance</p>\n";}
     
    		if ($adresse == '') { print "<p>Vous n'avez pas précisé votre adresse</p>\n";}
     
    		if ($ville == '') { print "<p>Vous n'avez pas précisé votre ville</p>\n";}
     
    		if ($code_postal == '') { print "<p>Vous n'avez pas précisé votre code postal</p>\n";}
     
    		if (($code_postal) && !(preg_match($valid_cp,$code_postal))) { print "<p>Le code postal doit être composé de 5 caractères exactement</p>\n";}
     
            if ($telephone == '') { print "<p>Vous n'avez pas précisé votre numéro de téléphone</p>\n";}
     
            if (($telephone) && !(preg_match($valid_telephone,$telephone))) { print "<p>Le numéro de téléphone doit être composé de 10 chiffres exactement, sans espace ni tiret</p>\n";}
     
            if(!$email) { print "<p>Vous n'avez pas précisé votre adresse électronique </p>\n";}
     
            if(($email) && !(preg_match($valid_email, $email))) { print "<p>L'adresse électronique saisie est invalide.</p>\n";}
     
    		if ($course = 0) { print "<p>Vous n'avez pas choisi de course</p>\n";}
     
    		if ($course=range(4,6) && ($equipier1 =='' || $equipier2=='') ) { print "<p>Vous n'avez pas renseigné le nom des équipiers.</p>\n";}
    et le message d'erreur lorsque je valide :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Warning: preg_match() [function.preg-match]: Compilation failed: missing ) at offset 51 in C:\xampp\htdocs\lachensmer\inscription.php on line 103
    Informations incomplètes
     
    Un (ou plusieurs) champ(s) obligatoire(s) n'a(ont) pas été correctement rempli(s).
     
    Warning: preg_match() [function.preg-match]: Compilation failed: missing ) at offset 51 in C:\xampp\htdocs\lachensmer\inscription.php on line 138
     
    Le code postal doit être composé de 5 caractères exactement
     
    L'adresse électronique saisie est invalide.
    Or, l'adresse email et le code postal que je saisis sont parfaitement valides

    Je suis perdu là, j'espère que quelqu'un m'apportera son aide. Merci d'avance.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Comme il te l'indique, dans l'expression du code postale, tu as une parenthèse qui n'est pas fermée.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 58
    Points : 22
    Points
    22
    Par défaut
    apparemment il manquait la ) à la fin.

    Mais la validation ne marche toujours pas... il me dit que l'email et le cp sont incorrects...

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 58
    Points : 22
    Points
    22
    Par défaut
    Il semblerait que cela est résolu le problème de l'email :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $valid_email = '/^[[:alnum:]]([-_.]?[[:alnum:]])+_?@[[:alnum:]]([-.]?[[:alnum:]])+\.[a-z]{2,6}$/';
    Je cherche toujours le code postal (France et Corse)...

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

Discussions similaires

  1. contrôle formulaire et expression régulière
    Par Mordikkuss dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 26/05/2010, 00h19
  2. [WD-2003] Formulaires et expression régulière
    Par docmatt dans le forum Word
    Réponses: 5
    Dernier message: 30/03/2010, 16h00
  3. Réponses: 4
    Dernier message: 20/10/2008, 23h34
  4. Expression régulière dans un formulaire
    Par popy67 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 18/02/2008, 10h08
  5. Réponses: 5
    Dernier message: 11/06/2002, 16h21

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