Guten Morgen,
ich schreibe grade an einem zugegebener Maßen etwas eigenwilligen Passwortgenerator, dessen Kern folgende while-Schleife ist
PHP
$pw = NULL;
$del = NULL;
while (strlen($pw) < 8) {
$pwchar = $pw_charset[rand(0, strlen($pw_charset)-1)];
echo "Zeichen. ".$pwchar;
echo "<br>";
$pw = "$pw$pwchar";
echo "Passwort bisher: ".$pw;
echo "<br>";
$pw_charset = preg_replace("/$pwchar/", $del, $pw_charset, 1);
echo "Neuer Passwortzeichensatz: ".$pw_charset;
echo "<br>";
echo "Länge des Zeichensatzes: ".strlen($pw_charset);
echo "<br>";
}
Alles anzeigen
Die Ausgabeanweisungen sind jetzt nur drin, damit ich sehen kann was jeweils passiert.
Das Problem, dass ich mit diesem Skript habe ist, dass es manchmal eine Endlosschleife produziert. Manchmal aber auch nicht. Ich hab mir schon den Kopf darüber zerbrochen, woran's liegen kann. Finde das Übel aber nicht. Obwohl: Das sitzt ja bekanntlich vorm Monitor. :distur:
Jedenfalls sieht die Ausgabe bei der Endlosschleife so aus
Code
Zufälliger Großbuchstabe: S
Zufälliger Kleinbuchstabe: n
Zufällige Zahl: 9
Zufälliges Sonderzeichen: *
Zufallskette aus 4 weiteren Zeichen: cv([
Passwortzeichensatz: Sn9*cv([
Zeichen. n
Passwort bisher: n
Neuer Passwortzeichensatz: S9*cv([
Länge des Zeichensatzes: 7
Zeichen. 9
Passwort bisher: n9
Neuer Passwortzeichensatz: S*cv([
Länge des Zeichensatzes: 6
Zeichen. c
Passwort bisher: n9c
Neuer Passwortzeichensatz: S*v([
Länge des Zeichensatzes: 5
Zeichen. S
Passwort bisher: n9cS
Neuer Passwortzeichensatz: *v([
Länge des Zeichensatzes: 4
Zeichen. [
Passwort bisher: n9cS[
Warning: preg_replace() [function.preg-replace]: Compilation failed: missing terminating ] for character class at offset 1 in /usr/local/apache_1.3.33/htdocs/siemi/tests/gen_pw.php on line 50
Neuer Passwortzeichensatz:
Länge des Zeichensatzes: 0
Zeichen.
Passwort bisher: n9cS[
Neuer Passwortzeichensatz:
Länge des Zeichensatzes: 0
Zeichen.
Passwort bisher: n9cS[
Neuer Passwortzeichensatz:
Länge des Zeichensatzes: 0
...
Alles anzeigen
Das hat ganz offensichtlich was mit preg_replace, also meinem Lieblingsthema (Reguläre Ausdrücke) zu tun.
Vielleicht sollte ich mal etwas über die Grundlagen der Programmierung lesen... :idea: