Page 1 sur 1

Condition pour un password

Posté : 02 juil. 2010, 02:18
par frexios
Bonsoir,

Je suis actuellement entrain de créer un espace membre pour un de mes sites et la je me retrouve devant un dilemme !

J'aimerais en effet que lors de l'inscription ou de la mise à jours du profil, le champ mot de passe soit contrôlé avec les conditions suivantes :
- Doit avoir plus de 8 caractères et moins de 32
- Doit contenir que les lettres [A-Z], les chiffres ainsi que les caractères suivants : { $ . }

Merci d'avance !

Re: Condition pour un password

Posté : 02 juil. 2010, 03:26
par AB
Pour contrôler la longueur d'une chaine il y a la fonction strlen et sa variante mb_strlen pour l'utf8.

Pour le reste c'est tout à fait faisable mais pourquoi limiter les caractères spéciaux ? Plus il y a de possibilités plus c'est sécurisé et puis il n'y a pas de raisons d'interdire les autres caractères, ils ne gênent en rien.

Mais bon si tu as une raison impérieuse tu trouveras de quoi le faire dans ce tuto

Re: Condition pour un password

Posté : 02 juil. 2010, 03:39
par stealth35
avec un regexp :wink:

sois
	
$str = 'tesdsxwcw$.sfsf'';
$reg = '/^[a-z\$\.]{8,32}$/';
	
preg_match($reg, $str, $matches);
	
if($matches)
{
    echo 'yep';
}
else
{
    echo 'nope';
}
ou plus officiel
	
$str = 'tes';
$reg = '/^[a-z\$\.]{8,32}$/';
	
$filter = filter_var($str, FILTER_VALIDATE_REGEXP, array('options' => array('regexp' => $reg)));
	
if($filter)
{
    echo 'yep';
}
else
{
    echo 'nope';
}

Re: Condition pour un password

Posté : 02 juil. 2010, 04:49
par frexios
Merci beaucoup pour votre aide c'est nikel ! :D

@AB: Je crois que je vais suivre ton conseille ! merci :)

Re: Condition pour un password

Posté : 02 juil. 2010, 21:42
par AB
- Doit avoir plus de 8 caractères et moins de 32
- Doit contenir que les lettres [A-Z], les chiffres ainsi que les caractères suivants : { $ . }

Merci d'avance !
$str = 'tesdsxwcw$.sfsf'';
$reg = '/^[a-z\$\.]{8,32}$/';

preg_match($reg, $str, $matches);
Manque les nombres dans ton regex :wink:

Re: Condition pour un password

Posté : 03 juil. 2010, 12:36
par stealth35
- Doit avoir plus de 8 caractères et moins de 32
- Doit contenir que les lettres [A-Z], les chiffres ainsi que les caractères suivants : { $ . }

Merci d'avance !
$str = 'tesdsxwcw$.sfsf'';
$reg = '/^[a-z\$\.]{8,32}$/';

preg_match($reg, $str, $matches);
Manque les nombres dans ton regex :wink:
exact #-o

Code : Tout sélectionner

^[a-z0-9\$\.]{8,32}$

Re: Condition pour un password

Posté : 04 juil. 2010, 02:38
par frexios
Merci, j'ai suivi le tuto indiqué plus haut je maitrise mieux mais je suis quand même bloqué sur un point, comment faire pour obligé l'utilisateur qui s'inscrit à mettre au moin une lettre et un chiffre dans leur mot de passe ?

Re: Condition pour un password

Posté : 04 juil. 2010, 02:53
par stealth35
Merci, j'ai suivi le tuto indiqué plus haut je maitrise mieux mais je suis quand même bloqué sur un point, comment faire pour obligé l'utilisateur qui s'inscrit à mettre au moin une lettre et un chiffre dans leur mot de passe ?
plus compliqué, je dirais comme ca

Code : Tout sélectionner

^(?=[a-z0-9\$\.]*\d)(?=[a-z0-9\$\.]*[a-z])[a-z0-9\$\.]{8,32}$