Regex Login (lettres et chiffres)

Résolu/Fermé
Lyonnais784 - 10 mai 2014 à 23:41
lyonnais784 Messages postés 26 Date d'inscription lundi 3 octobre 2011 Statut Membre Dernière intervention 16 août 2015 - 12 mai 2014 à 18:13
Bonjour, j'ai un petit problème avec un regex. Je voudrais tester si le pseudo entré par l'utilisateur ne contient que des lettres et chiffres et si le pseudo est compris entre 3 et 20 caractère. Voici mon code :

$syntaxe="#^[a-zA-Z0-9]{3.20}$#";
if( filter_var($_POST['mail'], FILTER_VALIDATE_EMAIL) AND preg_match( $syntaxe, $_POST['mail'] ) )

Merci d'avance.

3 réponses

Atropa Messages postés 1940 Date d'inscription mercredi 25 juin 2008 Statut Membre Dernière intervention 11 mai 2014 274
11 mai 2014 à 00:52
Bonsoir,

ta condition ne pourra jamais être vrai.

d'un coté tu testes une adresse mail et ensuite une chaine sans "@" ni "."

il manque également "-" et "_" pour une adresse mail mais inutile d'utiliser une regex si tu utilises filter_var() juste avant.

Pour tester la longeur de la chaine il te suffit d'utiliser strlen().
0
Lyonnais784
11 mai 2014 à 16:32
Merci de ta réponse. Effectivement le second n'est pas $_POST['mail'] mais $_POST['psd'].
J'ai séparer les deux if, le mail fonctionne mais le pseudo ne rentre jamais dans la condition même s'il est au bon format.
0
lyonnais784 Messages postés 26 Date d'inscription lundi 3 octobre 2011 Statut Membre Dernière intervention 16 août 2015 22
12 mai 2014 à 18:13
Problème résolu, un problème de variable. Merci :)
0