logo Homepage
Pages: [1]
  Imprimer  
Auteur Fil de discussion: [regex] autoriser que certains caractères  (Lu 4976 fois)
Luther
Profil challenge

Classement : 1881/54345

Membre Junior
**
Hors ligne Hors ligne
Messages: 73


Voir le profil
« le: 21 Août 2005 à 20:11:28 »

Salut,
juste une question : comment filtrer les pseudo des membres qui s'inscrive a-zA-Z0-9 + - .éèàöüöä et d'autre caractères que j'autorise ? j'arrive pas avec preg_match. expliquez moi svp
Journalisée
comtezero

Profil challenge

Classement : 2123/54345

Membre Héroïque
*****
Hors ligne Hors ligne
Messages: 1001


Voir le profil WWW
« #1 le: 22 Août 2005 à 16:36:32 »

voila une fonction que j'ai trouvé dans mon bouquin ( pour une fois qu'il dit un truc utile ) :

Code:
int ereg ( string motif, string chaine [,array tableau]) 
retourne vrai si la chaine contient le motif .

il ya d'autres variantes de ereg que tu trouveras facilement sur le net une fois la fonction trouvé ereg_replace , eregi ...)

motif :
[0-9] pour l'intervalle ( - ) 0 a 9 .
[09] recherche juste 0 et 9 dans l'expression .
[^0] recherche si 0 n'est pas dans l'expression .

NORMES POSIX :
[[:alnum:]] -> [A-Za-z0-9]
[[:alpha:]] -> [A-Za-z]
[[:digit:]] -> [0-9]
Je t'es mis les principales mais au total y en a environ une douzaine .

Exemple :

$expression="s4lout3";
if ( ereg('[0-9]', $expression)){
}
Journalisée

·´¯`·­»Comtezero«­·´¯`·

http://www.masstek.org
Luther
Profil challenge

Classement : 1881/54345

Membre Junior
**
Hors ligne Hors ligne
Messages: 73


Voir le profil
« #2 le: 22 Août 2005 à 17:22:18 »

j'avais deja trouvé avant mais thx qd meme^^
Journalisée
comtezero

Profil challenge

Classement : 2123/54345

Membre Héroïque
*****
Hors ligne Hors ligne
Messages: 1001


Voir le profil WWW
« #3 le: 22 Août 2005 à 17:24:54 »

Citation de: Luther
j'avais deja trouvé avant mais thx qd meme^^
y pas de quoi .
Journalisée

·´¯`·­»Comtezero«­·´¯`·

http://www.masstek.org
Nox
Profil challenge

non classé(e).

Membre Complet
***
Hors ligne Hors ligne
Messages: 142


Voir le profil
« #4 le: 29 Septembre 2005 à 23:09:20 »

tu peu aussi utiliser ctype_alnum qui renvoi vrai si tout est de type alphanumerique
Code:
<?
$texte = "abce1589"";

  if (ctype_alnum($texte)) {
    echo "test alphanum ok";
  } else {
    echo "erreur";
  }
?>
Journalisée

<-< Nox | Kernox >->

www.Kernox.ze.cx
Samadhi_06
Profil challenge

non classé(e).

Néophyte
*
Hors ligne Hors ligne
Messages: 8


Voir le profil
« #5 le: 16 Avril 2006 à 10:15:21 »

Kikoo,

Citation
j'arrive pas avec preg_match. expliquez moi svp
Code:
if (!preg_match('`^[[:alnum:]]*$`',$pseudo))
{
echo "tutut caracteres non autorisés";
               }
[[:alnum:]] autorisé les caracteres alphanumerique uniquement :
Les quotes c est pour delimité la chaine
Le chapeau chinois indique le debut de chaine
le dollars indique la fin de chaine
Pour limiter un pseudo de 4 à 15 caracteres par exemple tu remplace l'asterix par {4,15}

Un tres bon site sur les expressions regulieres: http://www.expreg.com/

Tu peux faire un tas de chose avec les expressions régulieres mais d'autres fonctions sont tres utiles et plus simple pour controler et manipuler les chaines. A voir sur http://www.php.net/manual/fr/

Au passage, si tu as d'autres formulaires une description du membre par exemple.
Je suppose que tu vas pas interdir la ponctuation, mais :

     - N'oublies pas de filtrer les balises si tu ne veux pas que des personnes malveillantes injecte des scripts
     - Penses aux quotes pour eviter les injections SQL, mefies toi si fais héberger ton site. Va savoir si les magiks quotes sont bien reglés dans leur fichier php.ini, on sait jamais.
 
       donc à méditer
       ciao
Journalisée
Pages: [1]
  Imprimer  
 
Aller à: