Bonjour à tous, un petit problème sur un formulaire et la validation de champs avec les expressions régulières, voici le code :
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
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";}
Or, l'adresse email et le code postal que je saisis sont parfaitement valides
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.
Je suis perdu là, j'espère que quelqu'un m'apportera son aide. Merci d'avance.
Partager