Thorsten Beuth: Zufallsstring

Und wieder ein Problem:

Ich wollte einen String zufällig erstellen lassen aus Zahlen... Dazu habe uich folgendes gemacht:

$Value ='';
for ($i = 1; $i <= 10; $i++) {
 $buff = rand (0, 9);
 $array = array ($i => $buff);
}
for ($i = 1; $i <= 10; $i++) {
 settype ($array[$i], "string");
}

for ($i = 1; $i <= 10; $i++) {
 $Value += $array[$i];
}
echo $Value;

nur kommt als ergebnis immer 1 raus?! Warum?
Oder kennt jemand vielleicht eine bessere Möglichkeit zum zufälligen Erstellen eines Strings ... am besten mit buchstaben!

  1. Ich kann es zwar auch so machen:

    $Term = rand (0, 999999);
    settype ($Term, "string");
    echo $Term;

    aber mit buchstaben wäre mir persöhnlich lieber!

    1. Hallo ,

      aber mit buchstaben wäre mir persöhnlich lieber!

      // Random-string
      srand((double)microtime()*9234567);
      $svZeichen = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890";    // mögliche zeichen
      $svRandom = "";     // Init
      while (strlen($svRandom) < 16)    // Bilde Random-string
      $svRandom .= substr($svZeichen,(rand()%(strlen($svZeichen))),1); // Wähle beliebiges zeichen aus und setze es zu random-string zusammen

      habe ich aus nem Onlineshop, welcher so eine ZufallsID generiert.
      wenns hilft

      gruss
      scribble

  2. Hallo,
    mein "Standard 8-Zeiler" für solche Sachen sind:

    srand(time); $x = '';
    for($i=0; $i < 10; $i++)  {
      switch(mt_rand(1, 3))  {
        case 1: $x.= chr(mt_rand(48, 57));  // 0..9
        case 2: $x.= chr(mt_rand(65, 90));  // A..Z
        case 3: $x.= chr(mt_rand(97, 122)); // a..z
      }
    }

    Das erzeugt dir einen 10-Stelligen String (in $x) der aus Zahlen und klein/großgeschriebenen Buchstaben besteht.

    Viele Grüße
    Thomas

  3. Hallo Thomas1

    Generiere doch einfach eine Session_ID.

    Ist, denke ich die einfachste Lösung...

    Thomas