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 ......