Bonjour, j'utilise le forum car j'ai malheureusement des difficultés et donc j'en viens à demander votre aide.
J'ai réalisé un formulaire de devis qui utilise donc des REGEX pour traiter les différents champs. Cependant j'ai fait quelques recherches mais il m'a tjs été impossible de réussir à modifier le code pour que ça marche (j'ai tenté pour le champs nom d'autoriser les ponctuations et les lettres avec accents mais sans réussite).
En gros j'aurais aimé autoriser les accents et les ponctuations (telles que la virgule, l'apostrophe, le point) pour les champs ci-dessous et pour le champs commentaire qui se situe sur une autre page de devis (mon formulaire est en plusieurs étapes).
J'ai lu que le souci pour autoriser ses caractères provenaient d'un "conflit" avec le htmlentities mais je ne sais pas par quoi, ni comment le remplacer.
Pourriez-vous me donner un exemple pour le champs nom svp ? histoire que je comprenne comment modifier parce que je n'y suis pas parvenu.
Ci-dessous le code :
Merci par avance
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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191 <?php //champ nom $_SESSION["nom"] = $_POST["nom"]; //si le champs est rempli if (!empty($_SESSION["nom"])) { //on teste que la valeur soit correcte $_SESSION["nom"] = addslashes(trim(htmlentities($nom, ENT_QUOTES))); $verif="!^[a-zA-Z ]{2,40}$!"; $search = 'çñÄÂÀÁäâàáËÊÈÉéèëêÏÎÌÍïîìíÖÔÒÓöôòóÜÛÙÚüûùúµ'; $replace = 'cnaaaaaaaeeeeeeeeeiiiiiiiioooooooouuuuuuuuu'; $_SESSION["nom"] = html_entity_decode($_SESSION["nom"]); $_SESSION["nom"] = strtr($_SESSION["nom"], $search, $replace); if(!preg_match($verif, $_SESSION["nom"])) { //si le champs n'obeit pas au REGEX, on alerte echo "le nom que vous avez saisi contient des erreurs"; exit; } } else { //si le champs est vide, on alerte echo "Vous n'avez pas saisi votre nom"; exit; } //champ prénom $_SESSION["prenom"] = $_POST["prenom"]; //si le champs est rempli if (!empty($_SESSION["prenom"])) { //on teste que la valeur soit correcte $_SESSION["prenom"] = addslashes(trim(htmlentities($prenom, ENT_QUOTES))); $verif="!^[a-zA-Z ]{2,40}$!"; if(!preg_match($verif, $_SESSION["prenom"])) { //si le champs n'obeit pas au REGEX, on alerte echo "Le prenom que vous avez saisi contient des caracteres qui ne sont pas autorises (attention les accents sont interdits)"; exit; } } else { //si le champs est vide, on alerte echo "Vous n'avez pas saisi votre prenom"; exit; } //champ adresse $_SESSION["adresse"] = $_POST["adresse"]; //si le champs est rempli if (!empty($_SESSION["adresse"])) { //on teste que la valeur soit correcte $_SESSION["adresse"] = addslashes(htmlentities($adresse, ENT_QUOTES)); $verif="!^[a-zA-Z 0-9-\./ ]{5,50}$!"; if(!preg_match($verif, $_SESSION["adresse"])) { //si le champs n'obeit pas au REGEX, on alerte echo "l'adresse que vous avez saisie n'est pas valide (attention l'adresse doit etre composee de 5 caracteres au minimum) !"; exit; } } else { //si le champs est vide, on alerte echo "Vous n'avez pas saisi votre adresse"; exit; } //champ ville $_SESSION["ville"] = $_POST["ville"]; //si le champs est rempli if (!empty($_SESSION["ville"])) { //on teste qu'il soit correctement rempli $_SESSION["ville"] = addslashes(trim(htmlentities($ville, ENT_QUOTES))); $verif="!^[a-zA-Z-\./ ]{2,50}$!"; if(!preg_match($verif, $_SESSION["ville"])) { //si le champs n'obeit pas au REGEX, on alerte echo "La ville que vous avez saisie est incorrecte (attention les accents sont interdits) !"; exit; } } else { //si le champs est vide, on alerte echo "Vous n'avez pas saisi votre ville"; exit; } //champ département $_SESSION["departement"] = $_POST["departement"]; //si le champs est rempli if (!empty($_SESSION["departement"])) { //on teste qu'il soit correctement rempli $_SESSION["departement"] = addslashes(trim(htmlentities($departement, ENT_QUOTES))); $verif="!^[0-9]{2,5}$!"; if(!preg_match($verif, $_SESSION["departement"])) { //si le champs n'obeit pas au REGEX, on alerte echo "Le numero de departement que vous avez saisi n'est pas valide "; exit; } } else { //si le champs est vide, on alerte echo "Vous n'avez pas saisi votre numero de departement"; exit; } //champ email $_SESSION["email"] = $_POST["email"]; //si le champs est rempli if (!empty($_SESSION["email"])) { //on teste qu'il soit correctement rempli $_SESSION["email"] = addslashes(trim(htmlentities($email, ENT_QUOTES))); $verif="!^[a-zA-Z0-9\._\-]+@[a-zA-Z0-9\._\-]{2,}\.[a-zA-Z]{2,4}$!"; if(!preg_match($verif, $_SESSION["email"])) { //si le champs n'obeit pas au REGEX, on alerte echo "Votre email n'est pas valide !"; exit; } } else { //si le champs est vide, on alerte echo "Vous n'avez pas saisi votre email"; exit; } //champ téléphone $_SESSION["tel"] = $_POST["tel"]; //si le champs est rempli if (!empty($_SESSION["tel"])) { //on teste qu'il soit correctement rempli $_SESSION["tel"] = addslashes(trim(htmlentities($tel, ENT_QUOTES))); $verif="!^[0]{1}[0-9]{9}$!"; if(!preg_match($verif, $_SESSION["tel"])) { //si le champs n'obeit pas au REGEX, on alerte echo "Le numero de telephone que vous avez saisi n'est pas valide !"; exit; } } else { //si le champs est vide, on alerte echo "Vous n'avez pas saisi votre numero de telephone"; exit; } //champs commentaires $_SESSION["commentaires"] = $_POST["commentaires"]; //si le champs est rempli if(!empty($_SESSION["commentaires"])) { $_SESSION["commentaires"] = addslashes(htmlentities($commentaires, ENT_QUOTES)); $verif="!^[a-zA-Z 0-9 \./]{1,200}$!"; if(!preg_match($verif, $_SESSION["commentaires"])) { //si c'est pas alpha-numerique on alerte echo "Le commentaire que vous avez saisi est incorrect"; exit; } } ?>
Partager