jaquel: CodeMaker

Beitrag lesen

Hi,

function make_seed() {
 list($usec, $sec) = explode(' ', microtime());
 return (float) $sec + ((float) $usec * 100000);
}

function createcode($anz) {
 mt_srand(make_seed());

$pass = "";
 $zeichen = "abcdefghijklmnopqrstuvwxyz".
      "ABCDEFGHIJKLMNOPQRSTUVWXYZ".
#      "0123456789öäüÖÄÜ";
      "0123456789";

for($i=0; $i < $anz; $i++) $pass .= $zeichen[mt_rand(0,strlen($zeichen))];

return $pass;
}

Ein toller Codemaker - jedoch mit einem Bug!
Ich übergeb ja die länge des Codes ($anz) - so kann ich 2 stellige Codes erzeugen der auch 10 - wie auch immer.
doch genau da liegt das problem. manchmal erzeugt er einen code der genau ein zeichen zu kurz ist wie ich möchte.. wo liegt denn der fehler?

jaquel