Ankündigung

Einklappen
Keine Ankündigung bisher.

Datum prüfen

Einklappen

Neue Werbung 2019

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

  • Datum prüfen

    Hallo @ All

    ich habe ein kleines Problem.

    Ich habe ein Formular in dem man in einem Feld ein Datum eingeben kann,
    z.B. 01.07.2010

    Nun will ich dass, das Datum geprüft wird.
    Das heißt:
    Wenn das eingegeben Datum vor dem heutigen Datum ist, dann soll er eine Fehlermeldung bringen.

    Ich habe nun bei Fehlemeldungen schon folgendes stehen:
    PHP-Code:
    if (strlen($_POST ['wann'])==0) { $error true; } 
    Wenn nun das Feld also leer ist dann bringt er auch eine Fehlermeldung.
    Das klappt.

    Ich hab versucht das ganze folgendermaßen zu lösen:
    PHP-Code:
    function timestampFromString($str){
    $werte explode("."$string);
    return 
    mktime((int)$werte[1], (int)$werte[0], (int)$werte[2]);
    }

    if (
    strlen($_POST ['wann'])==0)
    {
    $error true
    }

    if (
    strlen($_POST['wann']) > and timestampFromString($_POST['wann']) < timestampFromString(date('d.m.Y'))) 
    {
    $error true;  
    $fehler_text='<br><font color="#ff0000">Das gewählte Datum liegt vor dem aktuellen Datum</font>';

    Aber irgendwie geht das nicht, weil er ja in der ersten Abfrage schon prüft ob das Feld einen Wert liefert oder nicht und wenn ein Wert geliefert wird dann sieht er eben $error = false;

    Was kann ich da nun machen?

    Danke im Voraus...


  • #2
    Zitat von bierfest Beitrag anzeigen
    Aber irgendwie geht das nicht, weil er ja in der ersten Abfrage schon prüft ob das Feld einen Wert liefert oder nicht und wenn ein Wert geliefert wird dann sieht er eben $error = false;
    Wer ist „er“ - und was ist eigentlich dein Problem?


    Deine Funktion timestampFromString ist übrigens kompletter Nonsense - du nimmst Monat, Tag und Jahr, und gibst sie mktime an Position der Parameter, die für Stunde, Minuten und Sekunden stehen.

    Kommentar


    • #3
      Wer ist „er“ - und was ist eigentlich dein Problem?
      "er" ist vermutlich der PHP-Parser. Was das Problem ist würde ich aber auch gern wissen...

      PHP: checkdate - Manual

      wenn ein Wert geliefert wird dann sieht er eben $error = false;
      Wo ?
      Signatur:
      PHP-Code:
      $s '0048656c6c6f20576f726c64';
      while(
      $i=substr($s=substr($s,2),0,2))echo"&#x00$i;"

      Kommentar


      • #4
        er = es
        es = das was ich da zusammengetippt hab

        Deine Funktion timestampFromString ist übrigens kompletter Nonsense - du nimmst Monat, Tag und Jahr, und gibst sie mktime an Position der Parameter, die für Stunde, Minuten und Sekunden stehen.
        das raff ich jetzt nicht so ganz!
        wie ist das jetzt gemeint?
        Bin ned grad sonderlich fit mit PHP :/

        Kommentar


        • #5
          Dann schau ins Handbuch!

          PHP: mktime - Manual
          Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

          Kommentar


          • #6
            Wo ?
            PHP-Code:
            if (strlen($_POST ['wann'])==0)
            {
            $error true

            Wenn also ein Wert mitgeliefert wird, dann erkennt das Script $error somit dann als false, da der Inhalt des Feldes ja nicht leer ist.

            Oder?

            Kommentar


            • #7
              Jein. $error ist deshalb false weil es in diesem Fall nirgendwo gesetzt wird. Man könnte beispielsweise auch sowas schreiben

              PHP-Code:
              $error strlen($_POST['wann]') == 0
              Dann wäre es explizit auf false gesetzt.

              Kommentar


              • #8
                Jein. $error ist deshalb false weil es in diesem Fall nirgendwo gesetzt wird.
                Jein $error ist nicht false, sondern nicht-true. Genauer NULL. Und wird im Vergleich ins boolsche false konvertiert.
                --

                „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


                --

                Kommentar


                • #9
                  Zitat von mquadrat Beitrag anzeigen
                  Jein. $error ist deshalb false weil es in diesem Fall nirgendwo gesetzt wird. Man könnte beispielsweise auch sowas schreiben

                  PHP-Code:
                  $error strlen($_POST['wann]') == 0
                  Dann wäre es explizit auf false gesetzt.
                  ich hab es ja so:
                  PHP-Code:
                  $error false;
                  if (
                  strlen($_POST ['wann'])==0)
                  {
                  $error true
                  $fehler_wann '#ff0000';
                  }
                  if (
                  strlen($_POST['wann']) > and timestampFromString(number_format($_POST['wann'],2'.','')) < timestampFromString(date('dmY'))) 
                  {
                  $error true
                  $fehler_wann '#ff0000'
                  $fehler_wann_text_de='<br><font color="#ff0000">Das gewählte Datum liegt vor dem aktuellen Datum</font>';
                  $fehler_wann_text_en='<br><font color="#ff0000">The selected date lies before the current date</font>';
                  }

                  if (
                  $error== true)
                  {
                  echo 
                  'Fehlermeldung';
                  }

                  if (
                  $error == false)
                  {
                  ...

                  Deswegen geh ich davon aus, dass das Script, wenn man in Textfeld "wann" etwas eingibt, das dann auch als flase erkennt.

                  Kommentar


                  • #10
                    Ganz heißer Tipp: PHP: strtotime - Manual
                    @fschmengler - @fschmengler - @schmengler
                    PHP Blog - Magento Entwicklung - CSS Ribbon Generator

                    Kommentar


                    • #11
                      Zitat von fab Beitrag anzeigen
                      Ganz heißer Tipp: PHP: strtotime - Manual
                      Saugeil...

                      sorttime funzt

                      Danke @ ALL

                      Kommentar

                      Lädt...
                      X