Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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?

Geschrieben

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]

Geschrieben

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.

Geschrieben

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. :rolleyes:

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

Geschrieben

hey, als kleiner vorschlag zur "stabilisierung" deines Skripts:

Mach anstelle von Eingabefeldern "Dropdownlisten"

so KANN man garnichts falsches eingeben ;)

Geschrieben

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"]))

Geschrieben

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 ;)

Geschrieben

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

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...