Fragenfrager
Erfahrenes Mitglied
Hallo liebes Forum,
ich habe einen Passwortgenerator gebaut. Dieser liefert mir ein Passwort zwischen 5 und 7 Zeichen (je nach Einstellung).
Grundsätzlich enthält das Kennwort Kleinbuchstaben. Optional sollen Großbuchstaben, Ziffern und die Zeichen#,&,@,$,_,%,?,+ enthalten sein.
Da das Passwort aus einem Array der möglichen Zeichen zufällig generiert wird, kann es passieren, dass zB trotz der aktivierten Option "Ziffern" das Kennwort nur Groß- und Kleinbuchstaben enthält. In diesem Fall sollte die Generierung erneut aufgerufen werden.
Bisher sieht das so aus:
Bei // HIER WIRD HILFE BENÖTIGT ist der Part, an dem ich nicht weiterkomme.
Schön wäre eine Code, der mir mein Preg_match dynamisch zusammensetzt, da ich ansonsten für alle 9 Kombinationen aus Großschreibung, Ziffern und Sonderzeichen ein eigenes IF (!preg_match.... ) machen müsste.
Ich komme an dieser Stelle gedanklich nicht weiter...
ich habe einen Passwortgenerator gebaut. Dieser liefert mir ein Passwort zwischen 5 und 7 Zeichen (je nach Einstellung).
Grundsätzlich enthält das Kennwort Kleinbuchstaben. Optional sollen Großbuchstaben, Ziffern und die Zeichen#,&,@,$,_,%,?,+ enthalten sein.
Da das Passwort aus einem Array der möglichen Zeichen zufällig generiert wird, kann es passieren, dass zB trotz der aktivierten Option "Ziffern" das Kennwort nur Groß- und Kleinbuchstaben enthält. In diesem Fall sollte die Generierung erneut aufgerufen werden.
Bisher sieht das so aus:
PHP:
function generatePW($length)
{
$dummy = array_merge (range('a', 'z'));
if (isset($_POST['AZ']))
{
$dummy= array_merge ($dummy,range('A', 'Z'));
}
if (isset($_POST['09']))
{
$dummy= array_merge ($dummy,range('0', '9'));
}
if (isset($_POST['sonderzeichen']))
{
$dummy= array_merge ($dummy,array('#','&','@','$','_','%','?','+'));
}
// hier folgt die Passwortgenerierung, das Ergebnis ist $pw; den Code lasse ich hier aus.
$check=TRUE;
//Überprüfung, ob Großbuchstaben vorkommen sollen
if (isset($_POST['AZ']))
{
if (!(preg_match("#^[a-zA-Z]+$#",$pw) ))
{
$check=FALSE;
}
}
// HIER WIRD HILFE BENÖTIGT
if ($check)
{
return $pw;
}
else
{
generatePW($length);
}
)//end function
Schön wäre eine Code, der mir mein Preg_match dynamisch zusammensetzt, da ich ansonsten für alle 9 Kombinationen aus Großschreibung, Ziffern und Sonderzeichen ein eigenes IF (!preg_match.... ) machen müsste.
Ich komme an dieser Stelle gedanklich nicht weiter...