2011-10-22 6 views
5

J'apprécierais beaucoup de l'aide. Les mises à jour côté serveur de mon hôte ont provoqué deux erreurs de validation sur mon formulaire de commentaire. La première est: preg_match() renvoie Warning: preg_match() [function.preg-match]: Échec de la compilation: plage désordonnée dans la classe de caractères à l'offset 13 dans [emplacement du script ici et erreur de ligne] - la seconde est vérifiée 14. décalagePHP 5.2 échec de compilation preg_match()

Il le fait sur le chèque d'adresse e-mail:

if (preg_match('/[^a-zA-Z0-9_-.]/', $_POST['txtEmail'])) 

et sous contrôle:

if (preg_match('/[^a-zA-Z0-9:?-. ]/', $_POST['txtSubject'])) 

Je ne suis pas familier avec PHP, mais peut couper et coller! Mon site frowey.com et c'est le formulaire de commentaires sur nous contacter qui a commencé à lancer une erreur après l'hébergement des mises à jour du système d'exploitation. Merci d'avance.

Répondre

1
if (preg_match('/[^a-zA-Z0-9_\.-]/', $_POST['txtEmail'])) 

if (preg_match('/[^a-zA-Z0-9:\?\.-]/', $_POST['txtSubject'])) 
+0

Un grand merci pour les réponses. Je vais vérifier maintenant et vous faire savoir le résultat. – mochj

+0

Trié! Merci. Également nécessaire pour apporter une modification à la validation de l'adresse e-mail. Tout fonctionne maintenant. Merci encore. – mochj

9

Vous devez échapper le - moins. Il a une signification particulière avec les classes de caractères, comme les indications de message d'erreur. Utilisez une barre oblique inverse avant le moins:

preg_match('/[^a-zA-Z0-9_\-.]/' 

(Alternativement, le - peut être la première ou la dernière chose dans le groupe de caractères, il perd sa fonction spéciale.)

+0

Un grand merci. Je le vérifie maintenant. – mochj

+0

Tout fonctionne maintenant. Merci encore. Les deux réponses ont été très utiles. Très appréciée. – mochj