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 24/04/2006, 14h01   #1
Membre éclairé
 
Inscription : juillet 2005
Messages : 1 221
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 1 221
Points : 398
Points : 398
Par défaut Expression rationnelle avec accents, espace et apostrophe.

Bonjour,
J'utilise cette expression rationnelle pour filtrer mes formulaires :

Code :
if(ereg('^[a-zA-Z0-9-àáâãäåòóôõöøèéêëçìíîïùúûüÿñ]+$', $utilisateur))
Mais en plus des accents des lettres et des chiffres je voudrais le tirer, l'espace et l'apostrophe.

J'ai essayé cela pour les espaces, mais ça accepte tout, maintenant :
Code :
if(ereg('^[a-zA-Z0-9-àáâãäåòóôõöøèéêëçìíîïùúûüÿñ]|[:space:]+$', $utilisateur))
Savez-vous comment faire s'il vous plait?
psychoBob est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/04/2006, 14h07   #2
Rédacteur
 
Avatar de Swoög
 
Inscription : janvier 2003
Messages : 6 053
Détails du profil
Informations personnelles :
Âge : 24

Informations forums :
Inscription : janvier 2003
Messages : 6 053
Points : 7 144
Points : 7 144
Envoyer un message via MSN à Swoög Envoyer un message via Skype™ à Swoög
et ça :
Code :
'^[a-zA-Z0-9-àáâãäåòóôõöøèéêëçìíîïùúûüÿñ\'" -]+$'
???

au fait, je serais toi, j'utiliserais plutôt le module PCRE, qui est bien plus puissant : http://fr.php.net/PCRE enfin... c'est aussi vrai que pour le masque que tu utilise, les POSIX sont tout aussi bien
__________________
Rédacteur "éclectique" (XML, IRC, Web...)
Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
pensez à la balise [code] (bouton #) et au tag (en bas)
Swoög est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/04/2006, 14h07   #3
Membre éclairé
 
Inscription : juillet 2005
Messages : 1 221
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 1 221
Points : 398
Points : 398
Bon j'ai réussi avec ça :

Code :
1
2
 
if(ereg('^[a-zA-Z0-9àáâãäåòóôõöøèéêëçìíîïùúûüÿñ -]+$', $utilisateur))
Par contre pour les apostrophes, vous savez comment faire ?
psychoBob est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/04/2006, 14h23   #4
Rédacteur
 
Avatar de Swoög
 
Inscription : janvier 2003
Messages : 6 053
Détails du profil
Informations personnelles :
Âge : 24

Informations forums :
Inscription : janvier 2003
Messages : 6 053
Points : 7 144
Points : 7 144
Envoyer un message via MSN à Swoög Envoyer un message via Skype™ à Swoög
le pattern que je t'ai proposé prend en compte les quotes (simple et doubles)
__________________
Rédacteur "éclectique" (XML, IRC, Web...)
Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
pensez à la balise [code] (bouton #) et au tag (en bas)
Swoög est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/04/2006, 14h48   #5
Membre éclairé
 
Inscription : juillet 2005
Messages : 1 221
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 1 221
Points : 398
Points : 398
Merci Swoög
Là le problème, c'est que si le pseudo comporte des quotes, alors au moment d'aller vérifier dans la base si il existe déjà, ça me sort :

Code :
1
2
3
4
5
6
7
Warning: mysql_num_rows(): supplied argument 
is not a valid MySQL result resource in 
/home/scripts/compte/formulaire-filtrage.php on line 319
 
Warning: mysql_free_result(): supplied argument
 is not a valid MySQL result resource in
 /home/scripts/compte/formulaire-filtrage.php on line 326
A réception du pseudo, je filtre par :
Code :
htmlspecialchars(mysql_real_escape_string($utilisateur)))
Et ma requête c'est :

Code :
1
2
 
SELECT  pseudo  FROM membre WHERE pseudo='".$utilisateur."'

Une idée du pourquoi de l'erreur ?
psychoBob est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/04/2006, 14h53   #6
Rédacteur
 
Avatar de Swoög
 
Inscription : janvier 2003
Messages : 6 053
Détails du profil
Informations personnelles :
Âge : 24

Informations forums :
Inscription : janvier 2003
Messages : 6 053
Points : 7 144
Points : 7 144
Envoyer un message via MSN à Swoög Envoyer un message via Skype™ à Swoög
il y a une erreur dans ta requête, essaie de modifier ton mysql_query avec un or die :
Code :
$result = mysql_query($query) or die(mysql_error());
__________________
Rédacteur "éclectique" (XML, IRC, Web...)
Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
pensez à la balise [code] (bouton #) et au tag (en bas)
Swoög est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/04/2006, 14h57   #7
Membre éclairé
 
Inscription : juillet 2005
Messages : 1 221
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 1 221
Points : 398
Points : 398
ça m'affiche :

Code :
1
2
3
4
You have an error in your SQL syntax.
 Check the manual that corresponds to your MySQL
 server version for the 
right syntax to use near 'action d'' at line 1
Mais ma requête fonctionne très bien d'ordinaire. Sous prétexte que je fais un select sur une variable avec des quotes, hop ça foire ?
psychoBob est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/04/2006, 15h07   #8
Rédacteur
 
Avatar de Swoög
 
Inscription : janvier 2003
Messages : 6 053
Détails du profil
Informations personnelles :
Âge : 24

Informations forums :
Inscription : janvier 2003
Messages : 6 053
Points : 7 144
Points : 7 144
Envoyer un message via MSN à Swoög Envoyer un message via Skype™ à Swoög
le ' n'est pas échappé d'où erreur !

penche toi du côté de addslashes etc...
__________________
Rédacteur "éclectique" (XML, IRC, Web...)
Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
pensez à la balise [code] (bouton #) et au tag (en bas)
Swoög est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/04/2006, 15h15   #9
Membre éclairé
 
Inscription : juillet 2005
Messages : 1 221
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 1 221
Points : 398
Points : 398
Ok bien vu,

En fait je fais :
A réception des variable
Code :
1
2
3
4
5
 
1 //filtrage des variables
2 $confirmPass=mysql_real_escape_string(htmlspecialchars($_POST[confirmPass]));
3 // j'enlève les slashes pour pouvoir afficher correctement les données.
4 $utilisateur=stripslashes(stripslashes($utilisateur));
Avec le addslashes ça fonctionne bien.
Mais n'est ce pas une grosse co...... que de faire stripslashes() juste après un htmlspecialchars(mysql_real_escape_string()) ?
psychoBob est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/04/2006, 15h16   #10
Rédacteur
 
Avatar de Swoög
 
Inscription : janvier 2003
Messages : 6 053
Détails du profil
Informations personnelles :
Âge : 24

Informations forums :
Inscription : janvier 2003
Messages : 6 053
Points : 7 144
Points : 7 144
Envoyer un message via MSN à Swoög Envoyer un message via Skype™ à Swoög
bah... si XD
__________________
Rédacteur "éclectique" (XML, IRC, Web...)
Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
pensez à la balise [code] (bouton #) et au tag (en bas)
Swoög est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/04/2006, 15h16   #11
Membre éclairé
 
Inscription : juillet 2005
Messages : 1 221
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 1 221
Points : 398
Points : 398
Xd ?
psychoBob est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/04/2006, 15h20   #12
Rédacteur
 
Avatar de Swoög
 
Inscription : janvier 2003
Messages : 6 053
Détails du profil
Informations personnelles :
Âge : 24

Informations forums :
Inscription : janvier 2003
Messages : 6 053
Points : 7 144
Points : 7 144
Envoyer un message via MSN à Swoög Envoyer un message via Skype™ à Swoög
XD ~~
__________________
Rédacteur "éclectique" (XML, IRC, Web...)
Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
pensez à la balise [code] (bouton #) et au tag (en bas)
Swoög est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/04/2006, 15h21   #13
Membre éclairé
 
Inscription : juillet 2005
Messages : 1 221
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 1 221
Points : 398
Points : 398
psychoBob est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h07.


 
 
 
 
Partenaires

Hébergement Web