protected static function generateString ($length = 50, $Password){
$characters = $Password;
$string = '';
for ($p = 0; $p < $length; $p++) {
$string .= $characters[mt_rand(0, strlen($characters))]; // Error Line
}
echo $string;
}
Bonjour. Je construis une classe d'authentification, et la fonction ci-dessus me donne une certaine douleur, je continue à me présentais avec le message d'erreur:Décalage de chaîne non initialisé
Avis: chaîne non initialisée offset: 16
L'écho est là pour fins de test.
J'appelle ma fonction à l'aide:
public static function Compile($Password, $Length){
self::generateString($Length,$Password);
}
Auth::Compile('testi ngpassword', 10);
Quand je lance mon script, il génère parfois sans message d'erreur; mais lors de l'exécution de plusieurs fois (3-7) je reçois le message comme indiqué ci-dessus? et parfois cet avis montre plus de deux lignes? Alors, pourquoi le message d'erreur est-il généré de manière aléatoire lors de l'exécution répétée? quand les arguments spécifiés ne changent pas?
Les chaînes sont basées sur zéro, leur longueur commence par 1 ... donc le dernier caractère donnera un mauvais décalage –