<?php
$tableau = array("a", "b", "c" .......... "7", "8", "9");
$valeurs_aleatoires = array_rand($tableau, 8);
$mot_alea = "";
foreach($valeurs_aleatoires as $i)
{
$mot_alea = $mot_de_passe . $tableau[$i];
}
echo "Le mot aléatoire est : " . $mot_alea;
?><?php
function randomString( $length = 6, $char = 'abcdefghijklmnopqrstuvwxyz0123456789' ) {
$str = '';
$max = strlen($char)-1;
for ($i=1; $i<=$length; $i++) {
$str .= $char[ rand(0, $max) ];
}
return $str;
}
?>
pourquoi donc ?Cela suppose qu'une lettre ne peut pas être utilisée plus que 2 fois.
$str .= $char[ rand(0, $max) ];
Ca veut dire que $char est un tableau ?Le mec prend un tableau de caractères et le mélange en récupérant 8 caractères pour ensuite récupérer les index pour refaire une boucle.pourquoi donc ?Cela suppose qu'une lettre ne peut pas être utilisée plus que 2 fois.![]()
Outre le fait qu'il manque un modulo pour ne pas dépasser la taille du tableau, je ne vois pas la différence majeure entre vos fonctions
Il génère un tableau de 8 valeurs aléatoiresLe mec prend un tableau de caractères et le mélange en récupérant 8 caractères. Ensuite il utilise une boucle foreach() pour toutes les concatener alors que implode() aurait suffit.
]Donc les problèmes suivants de posent:
1) Une lettre ne peut être réutiliser plus d'une fois à moins de l'insérer plus d'une fois dans le tableau de départ. Non puisque s'il utilise un tableau de valeur aléatoire
2) L'utilisation d'une boucle foreach() alors que implode() aurait suffit. idem
3) Il utilise une variable indéfinie et écrase ainsi à chaque tour de boucle la variable qu'il tente de construire.d'accord
Je viens de tester la fonction plusieurs fois et la fonction array_rand() retourne un nombre d'élément donné aléatoirement mais jamais plus d'une fois le même élément.Non puisque s'il utilise un tableau de valeur aléatoire
OKJe viens de tester la fonction plusieurs fois et la fonction array_rand() retourne un nombre d'élément donné aléatoirement mais jamais plus d'une fois le même élément.