Regex Login (lettres et chiffres)

Résolu
Lyonnais784 -  
lyonnais784 Messages postés 38 Statut Membre -
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 2051 Statut Membre 274
 
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
 
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 38 Statut Membre 23
 
Problème résolu, un problème de variable. Merci :)
0