Anmeldefunktion

Knoppers

Mitglied
Hi

Ich will in meiner Seite eine Anmeldefunktion integrieren. Für Usernamen und Passwort sollen nur die Zeichen "a-z" , "A-Z" , "0-9" , "_" und die drei Umlaute erlaubt sein. Jetz weiß ich aber nich die Befehle, die man darfür braucht und in meinen schönen PHP-Büchlein hab ich auch nix passendes gefunden :(

mfg Knoppers
 
Bei deinen Ansprüchen genügt [phpf]ctype_graph[/phpf]. Als Regex sähe es so aus:

PHP:
if (preg_match('=^[_0-9a-z\201\204\224\304\326\334]{2,}$=is', $string) !== false) {
    // valide
} else {
    // nicht gültig
}

Die escapten Zeichendefinitionen sind übrigens Oktalangaben für die dezimalen Werte von ä, ö, ü, Ä, Ö und Ü. Die kannst du selbst nochmal in einer Zeichentabelle nachschlagen, oder über
PHP:
echo decoct(ord('ä'));
ermitteln.

Was mir noch spontan zur Verwendung der ctype Funktionen einfällt: Immer schön Typecasting betreiben, damit es nicht zu Fehlern kommt...
PHP:
var_dump(ctype((string) $value));
 
Bist du pingelig ^^

Nen Regex hab ich schließlich auch noch dazugepackt.
Wenn Knoppers auf alle Sonderzeichen verzichten kann (auch den Underscore), könnte man auch über
PHP:
setlocale(LC_ALL, 'de', 'de_DE', 'de_DE@euro');
if (ctype_alnum((string) $username)) {
    // alle alphanumerische Zeichen, die im deutschen Sprachgebrauch üblich sind
}
gehen.
Whatever - Der Regex tut's schließlich auch... ;)
 
Zurück