Bonjour,
Je viens de découvrir une anomalie sur un site que j’ai créé pour un client, et que je peux refaire sur ma machine de test.
J’ai un formulaire dans lequel je demande d’entrer un titre. Pour valider ce titre, j’ai créé une expression régulière qui accepte les caractères accentués :
Si on entre dans le formulaire : Chambre d’hôte cela marche sans aucun problème.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 if (preg_match('/^[a-zA-Z0-9 ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ().,:\'-]{4,100}$/u',stripslashes($_POST['titre']))) { $nfr = escape_data($_POST['titre']); } else { $par_errors['titre'] = « <br />Certains caractères ne sont pas acceptés. Veuillez corriger. » ; }
Si on entre : Chambre d’hote cela fonctionne aussi.
Par contre, si j’utilise le vérificateur d’orthographe du navigateur (testé sous Firefox 4 et Chrome), le mot hote et donc corrigé en hôte, mais dans ce cas, mon expression régulière ne fonctionne plus.
J’ai donc remarqué qu’à chaque fois que l’on utilise le vérificateur d’orthographe du navigateur, cela me donne une erreur sur mon expression régulière, et pourtant le texte n’a aucun caractère supplémentaire (en tout cas je ne les vois pas).
Quelqu’un a-t-il déjà rencontré ce problème, ou bien connaitrait-il une solution ?
Je suis sous PHP 5.3.1 serveur Apache 2.0
Merçi d’avance pour votre aide.
Partager