Tom: PHPs Zufallsgeneratoren und libc ...

Beitrag lesen

Hello,

Ich habe rand($min, $max) benutzt:

for ($len = 1; $len < rand(2,126); $len++)
{
    $_numbers['dec'][$len] = rand(1,126);
    $_numbers['pack'][$len] = pack('n', $_numbers['dec'][$len]);
}

Du lässt die for-Schleife zufällig oft zwischen 2 und 126 Mal durchlaufen?

Und wunderst Dich über Doppler überhaupt?

Nein, ich habe Dir nur den Zufallscode in der inneren Schleife gezeigt. Die ergibt jedes Mal nur einen Datensatz.

Das Ganze wiederhole ich dann 10 x 1.000 Mal.

[code lang=php]
function insert_rand($con)
{
$_numbers['dec'] = array();
$_numbers['pack'] = array();

for ($len = 1; $len < mt_rand(2,126); $len++)
{
    $_numbers['dec'][$len] = mt_rand(1,126);
    $_numbers['pack'][$len] = pack('n', $_numbers['dec'][$len]);
}

$sql = 'Insert into postings '.
       "set posting = binary '" . mysqli_escape_string($con, implode('', $_numbers['pack'])) . "', " .
   "    subject = '" . mysqli_real_escape_string($con, implode('.', $_numbers['dec'])) . "'";

if (false === ($res = mysqli_query($con, $sql)))
{
echo "*** konnte " . implode('.', $_numbers['dec']) . " nicht eintragen: " . mysqli_error($con) . " ***\r\n";
return false;
}

return implode('.', $_numbers['dec']) . " wurde eingetragen\r\n";
}

for ($i = 1; $i < 1000; $i++)
{
    echo insert_rand($con);
}

  
  
Nun zufrieden? :-)  
  
Ich hatte das auch nur als Randbemerkung fallen gelassen, weil es mir eklatant auffiel mit den Doubletten. mt\_rand() kann es ja.  
  
  
  
Liebe Grüße aus dem schönen Oberharz  
  
  
Tom vom Berg  
![](http://selfhtml.bitworks.de/Virencheck.gif)  
  

-- 
 ☻\_  
/▌  
/ \ Nur selber lernen macht schlau  
<http://bikers-lodge.com>