Wie überprüfe ich am besten ob das dateformat stimmmt.

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

  • #16
    PHP-Code:
    if($geburtstag != ''){
                
    preg_match("/([0-3]{1}[0-9]{1})\.([0-1]{1}[0-9]{1})\.([1-2]{1}[0-9]{3})/",$datum,$treffer);
                if(!(
    $treffer && !empty($treffer) && checkdate(intval($treffer[2]),intval($treffer[1]),$treffer[3]))){
                    echo 
    "<b id=\"Error\">Registration Error 13:</b> ".$geburtstag."Ungültiges Datum.<br />";
                    
    $field[12] = "error";
                    
    $rdy false;
                }
            } 
    Also ich habe jetzt ersma die Variante von jahlives probiert.
    Nun gebe ich in mein Feld den 11.12.2001 ein ... klappen tuts aber net



    omg irgendwie verpixelt das bild aber wenn man original größe hat erkennt man eigentlich alles

    also ich habe das ergebnis noch invertiert da ich ja eine fehlermeldung ausgeben will wenn das Datum falsch ist.

    Ich glaub ich versuch nochmal eine version mit explode darauf bin ich nähmlich grad beim googlen gestoßen udn ich hab ja den punkt als trennzeichen.

    Zuletzt geändert von florian1x; 14.03.2008, 20:53.

    Kommentar


    • #17
      sry für das zu groß geraten ne bild ich werds morgen mittag ersma verkleinern

      aber hier ma mein Lösungsvorschlag.

      Code:
      <input type=\"text\" name=\"geburtstag\"  title=\Geburtsdatum\" value=\"".$geburtstag."\"  />
      Code:
      //send_Registration ist der Button zum abshcicken des Formulars
      
      $geburtstag = (trim($_POST['geburtstag'])  !='' AND isset($_POST['send_Registraition']))  ? trim($_POST['geburtstag']):""; 
      
      //ich mach das so weil ich dann im script in den inputs die values via variable vordefinieren kann sollte ien fehler auftreten
      PHP-Code:
      $treffer explode("."$geburtstag);
                  if(!
      checkdate($treffer[1],$treffer[0],$treffer[2])){
                      echo 
      "Unzulässiges Datum<br />"
      und dann hab ich mir überlegt wie man die überprüfung immer so anpassen kann dass man nicht in der Zukunft geboren werden kann das scrupt jedoch in 999 jahren uach ncoh funktioniert. hier mein Ansatz:

      PHP-Code:
                  $treffer explode("."$geburtstag);
                  if(!
      checkdate($treffer[1],$treffer[0],$treffer[2])){
                      echo 
      "Unzulässiges Datum<br />";
                  }else if(
      $treffer[2] > date("Y")){
                      echo 
      "Error"// geht net weil man sons in der zukunft geboren wäre
                  
      }else if($treffer[2] == date("Y")){
                      if(
      $treffer[1] > date("m"))
                          echo 
      "Error";// geht net weil man sons in der zukunft geboren wäre
                      
      else if($treffer[1] == date("m"))
                          if(
      $treffer[0] > date("d"))
                              echo 
      "Error";// geht net weil man sons in der zukunft geboren wäre
                  

      also ich habs getest und funktionert. man muss nur mehrere seperate felhlermeldungen ausgeben das nervt finde ich. eine Idee wäre auch noch sich ne variable zum zwischenspeichern zu nehmen und die dann hinterher mit na if abfrage abzufragen. Find ich jedoch eher unschön sieht dann so gepatched aus ... also ich mein einfach draufgesetzt.

      PHP-Code:
                  $check true;//Hilfs variable
                  
      $treffer explode("."$geburtstag);
                  if(!
      checkdate($treffer[1],$treffer[0],$treffer[2])){
                      
      $check false;
                  }else if(
      $treffer[2] > date("Y")){
                      
      $check false;
                  }else if(
      $treffer[2] == date("Y")){
                      if(
      $treffer[1] > date("m"))
                          
      $check false;
                      else if(
      $treffer[1] == date("m"))
                          if(
      $treffer[0] > date("d"))
                              
      $check false;
                  }
                  if(
      $check){
                      echo 
      "G.-Datum Ok";
                  }else{
                      echo 
      "G.-Datum Falsch";
                  } 
      Jemand noch einen Optimierungsvorschlag

      Vorteil wenn man z.B. date("Y")-16 macht kann man überprüfen ob jemand mindestens 16 jahre als ist. Hab ich bei mir mit eingebaut ^^

      geht bestimmt einfacher aber is jezt ma so mein ansatz und ich würd mich über vorschläge mega freuen ^^

      mfg florian
      Zuletzt geändert von florian1x; 14.03.2008, 22:21.

      Kommentar


      • #18
        Also ich habe jetzt ersma die Variante von jahlives probiert.
        Nun gebe ich in mein Feld den 11.12.2001 ein ... klappen tuts aber net
        Ist irgendwie auch verständlich wenn deine Var $geburtstag heisst der RegExp so aber $datum erwartet...
        Ein Error Reporting hätte dich schnell darauf hingewiesen
        Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

        [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
        Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

        Kommentar


        • #19
          Dass du vermutlich den falschen Varnamen verwendet hast, habe ich bereits erwähnt. Habe den Code so wie er dasteht jetzt mal in meinen Webspace hochgeladen und siehe da er funzt

          Gruss

          tobi
          Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

          [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
          Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

          Kommentar


          • #20
            Original geschrieben von unset
            Mhm, split und checkdate machen das ganze ohne RegExp. Wesentlich flotter.
            ohne regex?
            split — Zerlegt eine Zeichenkette anhand eines regulären Ausdrucks in ein Array

            Kommentar


            • #21
              mhh das mit dem datum hätte mir auch auffalllen müssen kommt halt davon wenn ich zu faul bin und einfach copy + paste mache.
              Naja ich bleib jetzt bei meiner variante.... Hat zwar ein paar zeilen mehr aber ich hab ne altersüberprüfung drin. Es seidenn einer von euch hat einen mega vorschlag der alles in den schatten stellt was es überhaupt noch gibt

              Kommentar


              • #22
                Original geschrieben von 3DMax
                ohne regex?
                split — Zerlegt eine Zeichenkette anhand eines regulären Ausdrucks in ein Array
                Ich meine natürlich explode.

                @TS: Das mit dem Copy&Paste beim programmieren gewöhn dir lieber ganz schnell ab.
                [FONT="Helvetica"]twitter.com/unset[/FONT]

                Shitstorm Podcast – Wöchentliches Auskotzen

                Kommentar


                • #23
                  @TS: Das mit dem Copy&Paste beim programmieren gewöhn dir lieber ganz schnell ab.
                  Oder wenn's schon sein muss dann
                  PHP-Code:
                  ini_set('display_errors','1');
                  error_reporting(E_ALL); 
                  Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                  [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                  Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                  Kommentar

                  Lädt...
                  X