1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| function ctl_password($pw, $min=0, $max=0, $types='') {
// $types est un code qui doit contenir exclusivement les caractères :
// a pour contraindre la présence de minuscules,
// A pour contraindre la présence de majuscules,
// 0 pour contraindre la présence d'un chiffre,
// ! pour contraindre la présence d'un caractère spécial
// Forçage de valeurs pour test
$pw = 'abcdef';
$min = 4;
$max = 8;
$types='!'; // Ne fonctionne pas
$types='0'; // Ne fonctionne pas
// Contrôle de longueur
if ( $min !=0 ) { if ( strlen($pw) <$min ) return false; }
if ( $max !=0 ) { if ( strlen($pw) >$max ) return false; }
// Contrôle du type de caractères
if ( $types ) {
if ( strpos($types, '!') !== false and !mb_ereg_match("#\W#", $pw) ) { echo 'false1', '<br/>'; return false; } // Ne fonctionne pas
if ( strpos($types, 'a') !== false and !preg_match("#[a-z]#", $pw) ) { echo 'false2', '<br/>'; return false; } // OK
if ( strpos($types, 'A') !== false and !preg_match("#[A-Z]#", $pw) ) { echo 'false3', '<br/>'; return false; } // OK
if ( strpos($types, '0') !== false and !preg_match("#[0-9]#", $pw) ) { echo 'false4', '<br/>'; return false; } // Ne fonctionne pas
}
return true;
} |
Partager