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
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 !
@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

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

exact
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}$