Test d'une chaine de caractère

Résolu
Sniperman113 Messages postés 98 Date d'inscription mercredi 8 octobre 2003 Statut Membre Dernière intervention 21 février 2012 - 4 oct. 2006 à 18:45
Sniperman113 Messages postés 98 Date d'inscription mercredi 8 octobre 2003 Statut Membre Dernière intervention 21 février 2012 - 11 oct. 2006 à 20:47
Bonjour,

J'ai actuellement un petit soucis avec une série de test que je voudrai effectuer sur une chaine de caractère (un mot de passe plus précisément).
Il faudrait que celui-ci contienne au moins 10 caractères, 1 minuscule, 1 majuscule, 1 chiffre, sinon on renvoit false.

Enfaite, dans mon formulaire seul un mot de passe est demandé pour s'identifier (le "login" étant déjà défini grâce à l'URL).
 J'aimerai donc savoir aussi si cette solution est risquée vis à vis du hack. (c'est justement pour augmenter le nombre de mot de passes possibles que je veux imposer les critères ci-dessus)

Merci d'avance pour votre aide.

Cordialement,
Zupi.

2 réponses

JulSoft Messages postés 354 Date d'inscription dimanche 3 juin 2001 Statut Membre Dernière intervention 11 mars 2013
4 oct. 2006 à 21:28
Je pense que celà devrait faire l'affaire...

function testpassword($pass){

    $ret = true;

    if(strlen($pass)<10){

        $ret = false;

    }else{

        $nbMaj = 0;

        $nbMin = 0;

        $nbChiffres = 0;

        for($i=0;$i<strlen($pass);$i++){

            // on recupere le char en $i

            $chr = substr($pass,$i,1);

            if(is_numeric($chr)){

                $nbChiffres++;

            }else{

            if(strtolower($chr)==$chr){

                // on a une minuscule

                $nbMin++;

            }

            if(strtoupper($chr)==$chr){

                // on a une minuscule

                $nbMaj++;

            }

            }

        }

        if($nbChiffres<1||$nbMaj<1||$nbMin<1){

            $ret = false;

        }

    }

    return $ret;

}
3
Sniperman113 Messages postés 98 Date d'inscription mercredi 8 octobre 2003 Statut Membre Dernière intervention 21 février 2012
11 oct. 2006 à 20:47
Désolé pour le temps de réponse.

Ta fonction marche parfaitement !
Merci beaucoup !

Bonne continuation.
0
Rejoignez-nous