Didi: Formularfeldprüfung in PHP

hallo alle zusammen,

habe eine eingabeprüfung in einem feld

if (eregi("[1]{3,20}$",$username)) {         ////// Namenangabe richtig wenn (min 3,max 20 zeichen)

da heisst man kann nur einen namen wie franz angeben.

wie muss ich das ändern das ein vorname und nachname eingegeben weren kann. zwischen den beiden namen sollte ein oder mehrere leerzeichen erlaubt sein. beide mit min 3 und max 20 zeichen.

kann mir da jemand helfen?

Grüsse Didi


  1. a-z0-9 ↩︎

  1. Huhu Didi

    was ist wenn jemand

    Hans Joachim Müller-Schmidtbauer

    oder

    Donatus Wilhelm Freiherr von Koksstein

    als Namen führt ;-)

    Viele Grüße

    lulu

    1. wie kann man denn so heissen? ;-)

      das wäre furchtbar, da hab ich garnicht dran gedacht
      ein vorname muss genügen, beim nachnamen sollten doppelnamen auch erlaubt sein. stimmt.

      danke

      Huhu Didi

      was ist wenn jemand

      Hans Joachim Müller-Schmidtbauer

      oder

      Donatus Wilhelm Freiherr von Koksstein

      als Namen führt ;-)

      Viele Grüße

      lulu

      1. Moin!

        das wäre furchtbar, da hab ich garnicht dran gedacht
        ein vorname muss genügen, beim nachnamen sollten doppelnamen auch erlaubt sein. stimmt.

        Ich hätte einen wirklich real existierenden Namen anzubieten, der folgenden Aufbau hat (ich werde ihn hier nicht veröffentlichen):

        Dr. med. Xxxxxx von der Xxxxxxx-Xxxxxxxxx
        12345678901234567890123456789012345678901 - 41 Zeichen.

        Und du kommst nicht umhin, daß dieser Mensch 1. Doktor ist, und 2. "von der Wasweisich-Doppelname" heißt, und zu allem Überfluß nur einen Vornamen hat.

        Merke also: Sobald du irgendeine Annahme machst, ist sie verkehrt.

        PS: Dieser Mensch^WName muß immer dafür herhalten, ob das Adressfeld von Drucksachen noch ins Fenster des Briefumschlages paßt. :)

        - Sven Rautenberg

  2. Hallöchen!

    if (eregi("[1]{3,20}$",$username)) {         ////// Namenangabe richtig wenn (min 3,max 20 zeichen)

    Ich würde evtl zu http://www.php.net/manual/de/function.preg-match.php, ist deutlich mächtiger, und ich weiß jetzt nicht, in wieweit das kompatibel ist! Das sähe bei mir so aus:

    preg_match ( "/[2]{3,20}$/",$username)

    Dann hättest Du alle Wörter, Leerzeichen, Punkte und Bindestriche. Je nach Einstellung bräuchtest Du noch aÄöÖüÜ!

    Grüße
    Andreas


    1. a-z0-9 ↩︎

    2. \w\s.- ↩︎

    1. hallo andy,

      habs versucht bekomm dann einen parse error

      wie sieht das zeichen für ein oder beliebige leerzeichen aus?

      so würde es doch gehen denke ich mal, wären sogar doppelnamen erlaubt

      if (eregia-z0-9{3,20}ZEICHEN FÜR EIN ODER BELIEBIGE LEERZEICHENa-z0-9{3,20}$",$username))

      Gruss Didi

      1. Hallo!

        if (eregia-z0-9{3,20}ZEICHEN FÜR EIN ODER BELIEBIGE LEERZEICHENa-z0-9{3,20}$",$username))

        Problem dürften doch die Umlaute sein! Außerdem wenn jemadn leerzeichen, oder Punkte verwendet.

        eigentlich müßte das doch gehen, evt mußt Du noch den . und - mit \ escapen, also

        preg_match ( "/[1]{3,20}$/",$username)

        oder nur einmal, oder Du läßt den Punkt weg, gibt nur ein paar Möglichkeiten, probier einfach!

        Grüße
        Andreas


        1. \w\s.- ↩︎