Expression régulière de la mort

cs_Tartuffe Messages postés 39 Date d'inscription jeudi 27 mai 2004 Statut Membre Dernière intervention 18 février 2008 - 2 sept. 2006 à 13:44
DiGhan Messages postés 239 Date d'inscription samedi 21 février 2004 Statut Membre Dernière intervention 3 juin 2010 - 2 sept. 2006 à 17:39
Salut tous !


Voilà, j'ai un formulaire d'inscription avec Log et Pass à saisir.

Je ne veux pas de Log ni Pass avec des ', des " ou de $ et autre \ ou /...


Pour moi les expressions régulières sont régulièrement
incompréhensibles. Je suis hérmétique soit à la logique qu'elles
sous-tendent soit aux explications trouvées sur le web (pas didactiques
pour 2 sous en fait !).

Bref, voilà ce que je fais qui ne marche pas...

D'autant plus étonnant que cela marche pour la validité du mail...


J'y pige que dalle ; à l'aide !!!!!!!!!!!

____________________


// blabla précédent

$u_pass=trim($_POST['pass1']);

$possible_pass='^[-A-Za-z0-9#_~]$';

// ou ca d'ailleurs : $possible_pass='[A-Za-z0-9_\e.]{5,30}';

if(!preg_match($possible_pass, $u_pass)){//test suivant}


____________________

PekLandais

3 réponses

malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
2 sept. 2006 à 15:18
Hello,

tu veux quels caractères autorisés, dans ton login et ton mot de passe? Uniquement alphanumériques ?
0
cs_Tartuffe Messages postés 39 Date d'inscription jeudi 27 mai 2004 Statut Membre Dernière intervention 18 février 2008 3
2 sept. 2006 à 15:32
Alphanum et, @, 'underscore', é, è, ë, ê, é, ñ, û, etc. avec les lettre accentuées 'tordues', et ç, 'point', 'virgule', 'double point', 'plus', 'espace', ...

Bref, à peu près tous les caractères normaux SAUF les trucs génants et potentiellement metteur de chaos en ligne : (&?!<>=/\'{"#]}|[&$%*)£;

PS : je viens de comprendre qu'il y avait 2 règles d'écritures selon qu'on aille vers ereg vs preg_match, mais je n'ai toujours pas compris la syntaxe... ^^



PekLandais
0
DiGhan Messages postés 239 Date d'inscription samedi 21 février 2004 Statut Membre Dernière intervention 3 juin 2010 1
2 sept. 2006 à 17:39
Salut,

prenons point par point:

$possible_pass='^[-A-Za-z0-9#_~]$';

1) avec preg_*, il est possible de gérer la case d'une chaine en ajoutant un flag, ici, 'i'.

2) ce pattern(forme) ne fonctionne pas car tu indiques qu'il faut qu'il trouve une chaine constituée d'UN caractère(inclut dans les []). Pour remédier à ce problème il faut utiliser le caractère '+'(veut dire: 1 ou plusieurs fois les entités précédentes).

Ce qui donne au final:

$possible_pass = '`^[a-z0-9-#_~]+$`i';
0
Rejoignez-nous