vérification de caractères

vérification de caractères - PHP - Programmation

Marsh Posté le 30-03-2006 à 15:00:15    

salut,
 
voilà j'ai récupéré ca : if (!preg_match('/^[a-z0-9éèêëàâäìïîôöòùûüç]+$/i', $champs)  )  
 
ca accepte les caractères classiques, mais comment faire pour accepter un champ vide ??
le "\ " c'est l'espace..


Message édité par _Roland_ le 31-03-2006 à 17:30:26
Reply

Marsh Posté le 30-03-2006 à 15:00:15   

Reply

Marsh Posté le 30-03-2006 à 15:05:52    

strlen($champs)==0 or ... ?

Reply

Marsh Posté le 30-03-2006 à 15:10:12    

Tu dois pouvoir remplacer le "+" par "*", ce qui autoriserait une chaine vide
 
Sinon dans ton cas je pense que if (!preg_match('/^[\w]*$/i', $champs)  ) devrais marcher.
\w correspond a tous les caracteres alphanumeriques (peut aussi inclure qq autres caracteres comme _ mais cela depend des implementations (langage))
 
Pour tous tes problemes de regex je te conseil http://www.weitz.de/regex-coach/ qui devient vite indispensable.
 
edit : mal lu la question  :ange:

Message cité 1 fois
Message édité par Woutcha le 30-03-2006 à 15:14:24
Reply

Marsh Posté le 30-03-2006 à 15:15:51    

Woutcha a écrit :

Tu dois pouvoir remplacer le "+" par "*", ce qui autoriserait une chaine vide
 
Sinon dans ton cas je pense que if (!preg_match('/^[\w]*$/i', $champs)  ) devrais marcher.
\w correspond a tous les caracteres alphanumeriques (peut aussi inclure qq autres caracteres comme _ mais cela depend des implementations (langage))
 
Sinon pour tous tes problemes de regex je te conseil http://www.weitz.de/regex-coach/ qui devient vite indispensable.
 
edit : mal lu la question  :ange:


haha gg c'etait bien ca le "*" :)
 
eh oui j'utilisais un !preg_match résultat le strlen($champs)==0 ne pouvait pas répondre à mon attente ni != d'ailleurs ;)
 
merci en tout cas

Reply

Marsh Posté le 30-03-2006 à 16:19:57    

En quoi le "!" empéche l'utilisation de la fonction "strlen()"?

Reply

Marsh Posté le 31-03-2006 à 10:25:22    

omega2 a écrit :

En quoi le "!" empéche l'utilisation de la fonction "strlen()"?


J'ai pas dit que ca empechait l'utilisation, mais que ca ne répondait pas à ma question
 
 
if (strlen($champs)!=0 or !preg_match('/^[a-z0-9éèêëàâäìïîôöòùûüç]+$/i', $champs))
{
echo "mauvais caractères";
}
 
est différent de :
 
if (strlen($champs)==0 or preg_match('/^[a-z0-9éèêëàâäìïîôöòùûüç]+$/i', $champs))
{
echo "bons caractères";
}

Reply

Marsh Posté le 31-03-2006 à 16:25:41    

si tu veux un lot de condition qui soit l'inverse d'un lot de condition donné, alors il faut utiliser un "!" générique ou un "!" pour chaque terme et inverser et "or" et les "and" (les "or" deviennent des "and" et les "and" deviennent des "or" )
 
C'est sur que si tu ne modifies que la moitié de l'ensemble, ca ne te donera pas ce que tu veux obtenir.
 
 
EDIT : rajout d'un espace pour éviter un smilie pas voulut.


Message édité par omega2 le 31-03-2006 à 16:26:08
Reply

Marsh Posté le 31-03-2006 à 17:30:05    

Bon finalement ca ne va pas.
Il faut que les ' puissent être accepté !
exemple : l'entrée "l'escalier".
 
comment faire pour que le ' ou meme un ( ou \ etc ne pourrisse pas ma requete sql ?


Message édité par _Roland_ le 31-03-2006 à 17:30:14
Reply

Marsh Posté le 31-03-2006 à 18:19:10    

Pour ne pas pourrir une requete SQl c'est pas une expression reguliere qu'il faut utiliser.
Mais plutot des outils adaptes :  
 
http://fr.php.net/manual/fr/functi [...] string.php

Reply

Marsh Posté le 31-03-2006 à 18:59:57    

Ok super
 
mais je ne comprends pas trop les explications qui y sont données..
 
il suffit de faire :
$valeur = mysql_real_escape_string($valeur);
Non?
 
enfin ca marche en tout cas chez moi, ou alors j'ai raté quelque chose?

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed