Sandra Haupt
Grünschnabel
Hallo,
folgendes Problem kann ich auch trotz konzentrierten Durchlesens der php.net Pattern Syntax Informationen und des php/QuakeNet Tutorials nicht zufriedenstellend lösen:
Ich möchte die Daten überprüfen, die ich von meinen Usern per Formular übermittelt bekomme. Dabei sollen nur reguläre Vor- und Zunamen, bzw. ein einzelnes Wort als Namen akzeptiert werden. Dafür habe ich diese Richtlinien aufgestellt:
Das Ganze soll per preg_match überprüft werden.
Diese Befehlszeile stellt zumindest sicher, dass der erste Buchstabe groß geschrieben wurde. Sie läßt aber leider beliebig viele Leerzeichen zu und nach einem Leerzeichen darf auch klein weiter geschrieben werden. Die Maximallänge von 40 Buchstaben kann auch überschritten werden.
Ich hoffe unter Euch befindet sich ein Experte, der mir weiterhelfen kann. Nach acht Stunden Grübeln über eine einzige Befehlszeile verzweifel ich langsam.
Liebe Grüße, Sandra
folgendes Problem kann ich auch trotz konzentrierten Durchlesens der php.net Pattern Syntax Informationen und des php/QuakeNet Tutorials nicht zufriedenstellend lösen:
Ich möchte die Daten überprüfen, die ich von meinen Usern per Formular übermittelt bekomme. Dabei sollen nur reguläre Vor- und Zunamen, bzw. ein einzelnes Wort als Namen akzeptiert werden. Dafür habe ich diese Richtlinien aufgestellt:
- Der erste Buchstabe des ersten Wortes muss groß geschrieben sein.
- Danach müsen mindestens zwei kleine Buchstaben folgen.
- Jetzt darf ein Leerzeichen erscheinen, worauf aber wieder ein Großbuchstabe folgen muss.
- Nach einem zweiten Großbuchstaben müssen wieder mindestens zwei Kleinbuchstaben folgen.
- Es darf nur maximal ein Leerzeichen enthalten sein.
- Der letzte Buchstabe muss klein sein.
- Die Minimallänge bei einem Wort beträgt drei und die maximale Länge 40 Buchstaben. Bei zwei Wörtern beträgt die minimale Länge sieben (zweimal drei plus Leerzeichen) und die maximale Länge 40 Zeichen.
Das Ganze soll per preg_match überprüft werden.
PHP:
if (!preg_match("/^[A-Z]{1}[a-z]{2,39}[ ]{0,1}/", $_POST['username'])) {
Diese Befehlszeile stellt zumindest sicher, dass der erste Buchstabe groß geschrieben wurde. Sie läßt aber leider beliebig viele Leerzeichen zu und nach einem Leerzeichen darf auch klein weiter geschrieben werden. Die Maximallänge von 40 Buchstaben kann auch überschritten werden.
Ich hoffe unter Euch befindet sich ein Experte, der mir weiterhelfen kann. Nach acht Stunden Grübeln über eine einzige Befehlszeile verzweifel ich langsam.
Liebe Grüße, Sandra