Henning V.: zufallscode

<?php
function RandomCode($laenge){
  $zeichen = array("a","b","c","1","2","3","#","-");
  $ausgabe = '';

  $i = 0;
  while($i < $leange){
  	$ausgabe .= $zeichen[rand(0,count($zeichen)-1)];
    $i++;
  }
  return $ausgabe;
}
echo RandomCode(8)."<br>";
echo RandomCode(16)."<br>";
?>

ist das richtig es funktioniert nicht was habe ich falsch gemacht?

  1. Hallo Henning,

    es ist nur fast rihctig...

    Achte auf die Fehlermeldungen von PHP, die Du bekommst, bzw. stell dein PHP so ein, dass es sie anzeigt. Das steuerst Du mit der Funktion error_reporting oder setzt es über die gleichnamige Direktive in der php.ini.

    In einer Produktionumgebung hält man das Error-Reporting natürlich knapp (Stufe E_ERROR), aber in der Entwicklung möchte man ja genau wissen was los ist und dreht es auf. Vor allem dann, wenn das Programm merkwürdig verdrehte Dinge tut.

    Rolf

    PS: Dieser Bietrag enthält 3 Hinweise auf den Fehler! 😀

    --
    sumpsi - posui - clusi
    1. Tach!

      In einer Produktionumgebung hält man das Error-Reporting natürlich knapp (Stufe E_ERROR)

      Nö, auch da bleibt es auf E_ALL, aber display_errors kommt auf false/0. Man will ja alle Fehler und Problemfälle im Log haben, aber keine Interna angezeigt bekommen.

      dedlfix.

  2. ist das richtig es funktioniert nicht was habe ich falsch gemacht?

    Mag penibel klingen, aber solche Sätze halten mich oft vom überlegen ab. In deinem Code hast du doch auch die Kommataste gefunden ;-)

    Was macht es denn, wenns nicht funktioniert?

  3. ist das richtig

    Nein.

    es funktioniert nicht

    Genau deswegen kann es nicht richtig sein.

    was habe ich falsch gemacht?

    1. Du hast im müden Zustand gearbeitet, Dich vertippt und den Fehler nicht mehr selbst sehen können.
    2. Mit den Fehlermeldungen hättest Du es - wie ich auch - sicherlich binnen Sekunden gesehen:
    • Zeile 2: $laenge
    • Zeile 7: $laenge

    Das Error-Reporting wirft:

    PHP Notice: Undefined variable: leange in /tmp/test.php on line 7

    aus. Das zu besichtigen geht also schneller als in einem Forum zu fragen. Übrigens: In einer Konsole ausgeführt geht es noch schneller.