Datumsprüfung geht nicht

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Datumsprüfung geht nicht

    Hallo,
    ich möchte gerne in einem Formular ein Datum prüfen. Sollte das eingegebene nicht korrekt sein, gibt es eine Fehlermeldung hinter dem input feld aus. Leider zeigt er immer eine Fehlermeldung an, egal ob ich es im richtigen Format angebe oder nicht. Hier die Funktion:
    PHP-Code:
    function check_date($val)
       {
       
    $result false;
        
    $msg "";    
     
         
    $ar explode ("."$val);

         if (
    count($ar) == 3)
           
    $result checkdate($ar[1], $ar[0], $ar[2]);
           
    $msg .= "Bitte geben Sie ein gültiges Datum ein";

        return 
    $result;
         return 
    $msg;
       }

    $valid true;
    if (isset(
    $_REQUEST["datum"])) {
       
    $error["datum"] = check_date($_REQUEST["datum"]);
       if (
    $error["datum"] != "")
          
    $valid false;


  • #2
    Du macht in deinem Quellcode eine Menge Fehler. Ich denke du solltest dich erstmal mit Grundlagen der Programmierung beschäftigen.

    Btw. wenn unserer Grundschullehrer nun schon nicht mehr ihren Beruf ausschreiben können, mache ich mir echt sorgen.

    Zuersteinmal eine sinnvolle Einrückung tut not, dann verwirrt das auch nicht sondern hilft beim verstehen des Codes.

    Und nun dein Code in richtig.

    PHP-Code:
    function check_date($val)
    {
      
    $result false;
      
    $ar explode ("."$val);
      if (
    count($ar) == 3)
           
    $result checkdate($ar[1], $ar[0], $ar[2]);
      return 
    $result;
    }

    $valid=true;
    if (isset(
    $_REQUEST["datum"])) {
       
    $valid check_date($_REQUEST["datum"]);

    Noch ne kurze erklärung: Du kannst nicht zwei returns machen. Ergo ist deine Variable msg völlig unbenutzt.

    Statt dessen liefert dir die Funktion true/false zurück. Da weder true noch false = "" sind, hast du immer ein ungültiges Datum bekommen.

    Wie bereits oben beschrieben rate ich dir dich erstmal mit Grundlagen zu befassen, bevor du was anderes machst.

    Kommentar


    • #3
      Das zweite return wird nie erreicht.
      Die Funktion liefert ein Boolean, du prüfst auf einen leeren String.
      Ziemlich Kraut und Rüben ...

      Kommentar


      • #4
        was glaubst du, wird bei zwei(!) return zurückgegeben?

        gruß
        peter
        Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
        Meine Seite

        Kommentar

        Lädt...
        X