Brei Geschrieben 13. März 2005 Teilen Geschrieben 13. März 2005 Hallo, wie kann ich eine eingabe pruefen ob es im Format YYYY-MM-YY eingegeben wurde? Da ich mit Regulären Ausdrücken auf Kriegsfuß stehe, möchte ich sie nicht verwenden. Kann ich da evtl die Funktion strtotime() zweckentfremden oder gibts ne bessere Lösung? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kills Geschrieben 14. März 2005 Teilen Geschrieben 14. März 2005 meiner Meinung nach, wäre es mit einem RegEx am besten/schnellsten getan... Gruß, Markus Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
SNOWMAN Geschrieben 14. März 2005 Teilen Geschrieben 14. März 2005 Nunja, kills hat ja eigentlich recht... aber du kannst RegEx mehr oder weniger auf einer anderen "einfacheren" art schreiben: mit split() Du lässt das Datum als String eingeben und splitest es an den "-". Sollte einer der drei neuen Strings leer sein ->Ausgabe"Fehler" Ansonsten kannst du über ne If (bereichs)abfrage checken ob die werte passen: Pseudocode (orientiert an PHP): if ($year > 2050 && $year < 1950){ ausgabe"fehler" } if ($month = 1 || $month = 3 || month = 5 || ...){ #Monate mit 31 Tagen, bitte macht was schöneres draus if($day < 1 || $day > 31){ Ausgabe"Fehler"; } #und so weiter } [/php] Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kLeiner_HobBes Geschrieben 14. März 2005 Teilen Geschrieben 14. März 2005 Problem bei SNOWMANs Ansatz sind dann noch die Schaltjahre Ich würde am ehesten die strtotime()-Funktion verwenden: if (strtotime($mein_datum) != -1) ... [/PHP] Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Brei Geschrieben 14. März 2005 Autor Teilen Geschrieben 14. März 2005 hmm, naja dann probier ich mal regexp. Ihr werdet mir schon helfen :-) Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
forTeesSake Geschrieben 14. März 2005 Teilen Geschrieben 14. März 2005 nur mal ein kleiner einschub. mein chef hat mich vor kurzen auf eine ganz coole idee gebracht. wir entwickelten ein cms für einen kunden und haben dort beschlossen datums und uhrzeiten in jedem erdenklichen foormat zuzulassen. natürlich erfordert das ein bisschen js bzw php checking, aber im edneffekt war unser kunde total begeistert und wunderte sich dass er datums und uhrzeiten so eingeben kann wie er will und nicht immer fehlermedlungen alls (bitte das datum im format tt-mm-jjj) eingeben. er kann nun z.b. für das datum 01.01.2005 folgende formate eingeben 1.1.5 01.1.05 1.01.2005 1.1.005 01.01.2005 (natürlich ) ... bei uhrzeiten kann er z.b. für 00.30 0.30 00:30 0:30 00.30 für 00:03 0.3 0:3 00:3 00.3 etc. find ich einfach sehr cool ansonsteon viel erfolg bei der lösung deines probs, ich denke auch, dass die regEx lösung wohl die beste sein wird wenn du ein gewisses format vorgibst. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Jaraz Geschrieben 14. März 2005 Teilen Geschrieben 14. März 2005 er kann nun z.b. für das datum 01.01.2005 folgende formate eingeben 1.1.5 01.1.05 1.1.005 01.01.2005 (natürlich ) Ja klar, man muss ja auch an den Umsatz in der Zukunft denken, hat ja schonmal geklappt. etc. find ich einfach sehr cool ansonsteon viel erfolg bei der lösung deines probs, ich denke auch, dass die regEx lösung wohl die beste sein wird wenn du ein gewisses format vorgibst. Nein! dafür gibt es checkdate http://de.php.net/checkdate Gruß Jaraz Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
SNOWMAN Geschrieben 14. März 2005 Teilen Geschrieben 14. März 2005 hey, als kleiner vorschlag zur "stabilisierung" deines Skripts: Mach anstelle von Eingabefeldern "Dropdownlisten" so KANN man garnichts falsches eingeben Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Brei Geschrieben 14. März 2005 Autor Teilen Geschrieben 14. März 2005 also nach allem hin und her denke ich, dass ich es so mache: Je ein Textfeld fuer Tag, Monat, Jahr dann mach ich checkdate(). Das mit Dropdown: Wenn der User klug genug ist schon, aber er kann ja dann auch den 31. April eingeben, was nicht so doll wäre. Also so funktionierts sehr gut: if(@checkdate($_POST["beginn_monat"],$_POST["beginn_tag"],$_POST["beginn_jahr"]) && @checkdate($_POST["ende_monat"],$_POST["ende_tag"],$_POST["ende_jahr"])) Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
SNOWMAN Geschrieben 14. März 2005 Teilen Geschrieben 14. März 2005 hmm... du kannst ja die auswahlmöglichkeiten abhängig der wahl machen. als erstes muss er das jahr auswählen, dann wird der monat freigegeben, nach auswahl dieses wird anhand des ausgewählten Monats die Tagesanzahl bestimmt, isses Februar wird aufs jahr geuckt ob 28 oder 29. und wenn die anzahl der tage festgelegt sind wird das feld für die tage freigegeben. erfordert n bisschen aufwand aber so ist es zu 100% sichergestellt das der user nix falsches eingibt, kann er ja auch garnet Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Jaraz Geschrieben 14. März 2005 Teilen Geschrieben 14. März 2005 Hi, egal ob man per Javascript irgendwas freischaltet, kritische Daten müssen immer auf den Server überprüft werden. Ich kann Formulare auch ohne das entsprechende Formular abschicken und wilde Werte, bis zu SQL Injection Strings übermitteln, egal ob es sich um eine Checkbox, select-box mit Zahlen oder was auch immer handelt. Gruß Jaraz Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.