Mammouth du PHP |
19672 Messages
11 févr. 2006, 11:29
Alors effectivement, la solution preg_match est plus appropriée, mais tant qu'à faire, pour un mot de passe, tu devrais peut-être limiter davantage: par exemple, limiter en longueur minimum, c'est une bonne chose, mais mettre une limite maximum ne nuira pas: il se trouvera sinon toujours un zozzo qui nous la jouera parano avec facteur aggravant qui mettra un mot de passe de 55 caractères et le perdra à chaque connexion.
D'autre part, limiter sur le type de caractères autorisés : par exemple, limiter à des caractères alpha-numériques + quelques caractères particuliers : le résultat donnerait ceci:
<?php
if ( !preg_match ( "!^[a-z0-9!_]{6,15}$!i" , $password ))
{
echo "<font size=5 color='red'>Votre mot de passe est invalide !</font><br />\nMinimum 6 caractères, maximum 15, lettres, chiffres, point d'exclamation et trait de soulignement uniquement !" ;
}
?>
Note le "i" après le délimiteur de fermeture du masque PCRE : ça rend l'expression insensible à la casse et permet aussi bien "a" que "A".
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse 