Hallo,
Grr, bitte einige Dich mit Dir darauf, in Zukunft generell length zu schreiben.
habs gemerkt, ich versuch es gerade, jetzt dürfte alles auf "length" gestellt sein ;)
Schreibst Du zum Beispiel die Verwendung verschiedener Zeichenklassen vor (..)
Eigentlich will ich mir genau das ersparen und trotzdem ein halbwegs vernünftiges Passwort "erzwingen". Also wirklich nur "Müll" raus filtern.
statt (hier Deine Version aus
# Wenn String nur aus einem Zeichen besteht
# Stringlänge ermitteln
$length = strlen($string);
# Leeres Array erstellen
$chars = array();
# Einzelne Zeichen in Array aufsplitten
$chars = str_split($string);
# einzelne Buchstaben auslesen bis Arrayende, $i auf ersten Schlüssel (0) setzen
for($i = 0; $i < $length; $i++){
# Kontrollvariable beim ersten Durchlauf auf aktuelles Zeichen setzen
if(!isset($charold)) $charold = $chars[$i];
# wenn Kontrollvariable = aktuelles Zeichen
if($chars[$i] == $charold){
# Fehlervariable auf 1 setzen (beim ersten Durchlauf)
$bad_pwd = '1';
}else{
# wenn Kontrollvariable nicht dem aktuellen Zeichen entspricht
# Fehlervariable auf 0 setzen
$bad_pwd = '0';
# Schleife beenden
$i = $length;
}
}
# Fehlervariable übergeben
if($bad_pwd == '1') $error = '5';
arbeitet bestimmt nicht korrekt, ich verstehe ehrlich gesagt überhaupt nicht, was das soll. Kommentiere Deinen Code!
So besser? Wenn die Schleife, ohne das $bad_pwd auf 0 gesetzt wird weil ein neues Zeichen auftritt, beendet oder durchlaufen wird sind mindestens 2 verschiedene Zeichen im String. Aber wieso ist er nicht fehlerfrei?
Ich hab aber deine Variante übernommen, danke! Ich bin leider nicht so fit mit den Array-Funktionen.
Ach ja, ich halte es für eine gute Idee, die einzelnen Prüfungen in hübsche kleine einzelne und gut testbare Funktionen zu packen.
hmpf, deshalb war im Ausgangspost auch nur der eine Teil ;)
Das ganze könntest Du dann in eine kleine Klasse packen.(...)
So war das geplant ;)
Ich versuch mich jetzt noch an einer Abfrage um z.B. "4321" zu unterbinden.
Ich such grad eine Funktion um heraus zu kriegen wieviel Schlüssel ein Array hat. Nicht schlagen, ich hab Arrays irgendwie echt vernachlässigt.
Wie ich "dcba" vermeiden kann weiß ich noch nicht.
Grüße, Matze