Précédent   Forum des professionnels en informatique > PHP > Langage > Regex
Regex Forum d'entraide sur les expressions rationnelles PHP. Avant de poster -> FAQ regex, Cours de regex et Sources de regex
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 25/03/2011, 11h06   #1
Invité de passage
 
Emmanuel Petit
Inscription : novembre 2010
Messages : 11
Détails du profil
Informations personnelles :
Nom : Emmanuel Petit

Informations forums :
Inscription : novembre 2010
Messages : 11
Points : 4
Points : 4
Par défaut Expression régulière et correcteur orthographique du navigateur

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 :
Code :
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 dans le formulaire : Chambre d’hôte cela marche sans aucun problème.
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.
chat de nuit est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/03/2011, 12h41   #2
Modérateur
 
Avatar de s.n.a.f.u
 
Homme
Développeur Web
Inscription : août 2006
Messages : 2 700
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 37
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : août 2006
Messages : 2 700
Points : 3 357
Points : 3 357
Est-ce que la correction ne remplace pas par une html_entity ?
__________________
  • Avant de poser une question, n'hésitez pas à chercher dans la FAQ et les forums
  • Merci d'utiliser les balises de code (# dans l'éditeur)
  • Si votre problème est réglé, merci d'utiliser le bouton
S.N.A.F.U
s.n.a.f.u est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/03/2011, 13h56   #3
Invité de passage
 
Emmanuel Petit
Inscription : novembre 2010
Messages : 11
Détails du profil
Informations personnelles :
Nom : Emmanuel Petit

Informations forums :
Inscription : novembre 2010
Messages : 11
Points : 4
Points : 4
@ s.n.a.f.u.

C'était ma première idée, mais il n'y a aucun remplacement avec un html_entity.
De plus, en faisant plusieurs test, le problème ne se pose pas sur un é ou è, mais pour le moment qu'avec le ô...
chat de nuit est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/03/2011, 14h00   #4
Invité de passage
 
Emmanuel Petit
Inscription : novembre 2010
Messages : 11
Détails du profil
Informations personnelles :
Nom : Emmanuel Petit

Informations forums :
Inscription : novembre 2010
Messages : 11
Points : 4
Points : 4
Je viens de faire un autre test, et il semble que celà se produise seulement si il y a un apostrophe avant le ô.
Par exemple : hopital corrigé en hôpital fonctionne, mais l'hopital corrigé en l'hôpital n'est pas accepté...
chat de nuit est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/03/2011, 16h29   #5
Modérateur
 
Avatar de s.n.a.f.u
 
Homme
Développeur Web
Inscription : août 2006
Messages : 2 700
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 37
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : août 2006
Messages : 2 700
Points : 3 357
Points : 3 357
Je ne vois pas d'autre possibilité que de débuguer à l'ancienne :

Code :
1
2
3
4
5
6
7
8
 
$title = stripslashes(trim($_POST['titre'])));
var_dump($title);
if (preg_match('/^[a-zA-Z0-9 ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ€().,:\'-]{4,100}$/u',$title) {
	$nfr = escape_data($title);
} else {
	$par_errors['titre'] = « <br />Certains caractères ne sont pas acceptés. Veuillez corriger. » ;
}
__________________
  • Avant de poser une question, n'hésitez pas à chercher dans la FAQ et les forums
  • Merci d'utiliser les balises de code (# dans l'éditeur)
  • Si votre problème est réglé, merci d'utiliser le bouton
S.N.A.F.U
s.n.a.f.u est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h12.


 
 
 
 
Partenaires

Hébergement Web