Problem mit ereg

  • Hi @ all!

    Ich überprüfe mit folgendem Code ob das Datumsformat korrekt ist:

    PHP
    if (!ereg ("([0-9]{1,2})\.([0-9]{1,2})\.([0-9]{4})", $datum, $regs))
    {echo "Datumsformat nicht korrekt!";
    }
    else
    {echo "Datumsformat korrekt!";
    }

    Funktioniert soweit bestens, nur bin ich eben drauf gekommen, dass hier z.B. das Datumsformat 12.12.2009999 auch korrekt wäre!

    Ich weiß jetzt überhaupt nicht wo der Fehler liegt bzw. was ich machen muss um das zu korrigieren!

    Vielen Dank für jede Hilfe!

  • Du überprüfst nur ob irgendwo in $datum eine korrekte Datumssyntax ist. Wenn diese gefunden wird kann davor und dahinter noch soviel anderer kram stehen wie man will.
    Du mußt Zeilenanfang ^ und Zeilenende $ markieren:

    PHP
    if (!ereg ("^([0-9]{1,2})\.([0-9]{1,2})\.([0-9]{4})$", $datum, $regs))
    {echo "Datumsformat nicht korrekt!";
    }
    else
    {echo "Datumsformat korrekt!";
    }

    "Programming today is a race between software engineers
    striving to build bigger and better idiot-proof programs,
    and the universe trying to build bigger and better idiots.
    So far, the universe is winning."
    Rick Cook