Announcement

Collapse
No announcement yet.

PLZ & ereg

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • PLZ & ereg

    Hallo zusammen,

    ich verzweifele gerade...

    habe folgendes Konstrukt:

    if ($_POST["LandID"] == "D"){
    if (!ereg("([0-9]{5,5})",$_POST["PLZ"])) {
    $fehler = "format-PLZ";
    }
    }
    else{
    echo $_POST["PLZ"];
    if (!ereg("([0-9]{4,4})",$_POST["PLZ"])) {
    $fehler = "format-PLZ";
    }
    }

    Der erste Teil funktioniert einwandfrei...bei $_POST["LandID"] == "D"
    und nur 4 Zeichen läuft er in den Fehler...

    allerdings bei $_POST["LandID"] == "A" läuft er in keinen Fehler obwohl 5 Zeichen eingegeben wurden. Woran liegt das?
    Bei 3 Zeichen läuft er auch in den Fehler...aber Österreich hat nunmal 4 Zeichen, und auch nur 4 Zeichen sollen akzeptiert werden.
    5 Zeichen nimmt er aber mit diesem Konstrukt ohne weiteres an. soll ja nicht sein... nämlich ([0-9]{4,4}) sagt doch mindestens 4 UND höchstens 4 Zeichen oder?

    Grüße

    EDIT:

    hab was übersehen ....

    else{
    if (!ereg("([0-9]{4,4})",$_POST["PLZ"]) || strlen($_POST["PLZ"]) > 4) {
    $fehler = "format-PLZ";
    }
    }

    jetzt gehts!
    Zuletzt editiert von goldlife; 11.02.2008, 19:28.

  • #2
    Hallo goldlife,

    das gezeigte Verhalten ist kein Fehler, sondern Funktionalität von ereg(). Auch der erste Teil würde bei der Eingabe von 6 Zeichen keinen Fehler werfen.

    deine Regex sieht ja so aus: ([0-9]{5,5}) - besser wäre schonmal ([0-9]{5})
    Ein String '0123' matched hier nicht, '01234' matched und '012345' auch, ebenso wie '01234huziojeoicli' oder 'uhsjln01234klni'. Ich hoffe du verstehst was ich meine.
    Du solltest deine Regex also dahingehend erweitern, das davor und danach keine weiteren Zeichen stehen dürfen, also in etwa so: ^([0-9]{5})$

    Gruß Falk
    Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

    Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

    Comment

    Working...
    X