[RESOLU] Erreur avec mt_rand

Eléphant du PHP | 428 Messages

29 août 2011, 21:12

Bonjour,

Je rencontre une erreur => Notice: Uninitialized string offset: 16 in ... lorsque je veux générer un "string" aléatoire avec mt_rand

Code : Tout sélectionner

    $characters = "0123456789abcdef";           $string = 0;     for ($i = 0; $i < 50 ; $i++) {         $string .= $characters[mt_rand(0, strlen($characters))];     }  
C'est la ligne : $string = $characters[mt_rand(0, strlen($characters))]; qui semble poser problème. (Uninitialized string offset: 16 qui correspond à $charachers = "0123..")
J'ai un peu près tout tenté mais je trouve pas.

Une idée ?

Merci pour votre aide
Modifié en dernier par visualight le 16 sept. 2011, 16:23, modifié 1 fois.

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

30 août 2011, 00:14

salut,

c'est simple les index commence toujours à zéro (d'ailleurs tu l'indique par le zéro dans le mt_rand).

Mais le strlen retourne 16 ce qui est vrai il y a 16 caractères l'index du dernier caractères est 15 pas 16 :mrgreen:

de plus y a des chances que ta chaine commence toujours par un zéro, déclare plutôt la ainsi $string = '';


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