Passe perdu en Md5

Eléphant du PHP | 69 Messages

10 août 2011, 18:06

Bonjour ,

J'ai fait ma section membre complète et le mot de passe est stocké en MD5 pour une meilleur sécurité.
Je voudrais faire une section Mot de passe Perdu qui génererais un mot de passe aléatoire et qui lenverrais par email.

La seul section ou j'ai un problème c'est pour généré aléatoirement le mot de passe de 8 ou 10 caractère :S
Auriez-vous un tuto ou un exemple a me montrer ?

Merci !

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

10 août 2011, 20:42

salut,

tu peux le faire avec array_rand par exemple.

sinon une fonction perso, tu créer un tableau avec tous les caractères utilisables dans ton formulaire (bon dans les deux cas faut le faire ;) ).
tu utilise un for ou un while (avec le nb de caractère voulu) et tu pioche dans le tableaux :)

perso j'ai fait ça (rapido) y a surement moyen de faire mieux !
<?php
function gencode ($lenght = 8) {
    $minchar = range('a','z');
    shuffle($minchar);
    $number = range(0,9);
    shuffle($number);
    $majchar = range('A','Z');
    shuffle($majchar);
    $char = array_merge($minchar,$number,$majchar ,$number);
    shuffle($char);
    $final = '';
    $random_key = array_rand($char,$lenght);
    foreach($random_key as $key ){
        $final .= $char[ $key ];
    }
    $nb = preg_match('`(?!^[0-9]*$)(?!^[a-zA-Z!@#$%^&*()_+=<>?]*$)^([a-zA-Z!@#$%^&*()_+=<>?0-9]{8,16})$`iu', $final);
    if ($nb == 0 ) $final = gencode($lenght);
    else
        return $final;
}

//utilisation 
$mdp = gencode();
//ou
$mdp = gencode('nombre de caractère');
?>
fait gaffe si tu modifie la fonction à vérifier si l'expression régulière match toujours ^^

@+
Il en faut peu pour être heureux ......

Eléphant du PHP | 69 Messages

11 août 2011, 14:22

Merci ! ;)

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

11 août 2011, 19:59

de rien

@+
Il en faut peu pour être heureux ......