#1 15. April 2014 hi, wer kann mir sagen worans hier liegt , der $_REQUEST , kommt von einer user eingabe rein sollte also bestehen bleiben. Geht darum das er bei eingabe von 53 -> sagt Montag:29.12.2014 bis Freitag:02.01.2015, was ja falsch ist denn 53 -> Kalenderwoche 1 PHP: $woche = $_REQUEST [ 'week' ]; $jahr = date ( 'Y' ); $timestamp_montag = strtotime ( " { $jahr } -W { $woche } " ); $timestamp_freitag = strtotime ( " { $jahr } -W { $woche } -5" ); if ($resultat = $db->query('SELECT * FROM spielplan WHERE week = '.$_REQUEST['week'].'')) { [/php] Folgendes soll gehen: Wie filtere ich den $_REQUEST , damit da nichts reinkommt am besten mit numeric "da nur zahlen reinkommen" (Wochenzahlen)? Als auch wie ändere ich es das es keine 53 wochen gibt sondern 51 und die andere ins nächste Jahr rutscht? thanks Edit: bei date auf php.net finde ich ne Lösung %V nur wie integrier ich das ganze in mein Snippet sodass es funkt :/ + Multi-Zitat Zitieren
#2 17. April 2014 AW: strtotime W: kalenderwochen falsch Kann mir den keiner helfen ( + Multi-Zitat Zitieren
#3 17. April 2014 AW: strtotime W: kalenderwochen falsch $woche = intval($_REQUEST['week']); oder $woche = preg_replace("/[^0-9$]", "", $_REQUEST['week']); + Multi-Zitat Zitieren
#4 17. April 2014 AW: strtotime W: kalenderwochen falsch untested intval beseitigt, aber nicht das problem - das besteht das woche 53 existiert obwohls nur 52 gibt .. Die woche 53 is eben eigentlich Woche 1 des Jahres 2015 , und das bekomm ich anhand meines oben geposteten codes nicht hin + Multi-Zitat Zitieren
#5 17. April 2014 AW: strtotime W: kalenderwochen falsch das habe ich ja auch nicht gesagt, mir fehlte da grad etwas zeit und hirn, ich habe dir nur aufgezeigt wie du die Eingaben filterst da das was du machst sql injection anfällig is Es gibt btw sicher elegantere wege aber du könntest aufrunden 52/53 = 1. Jahr 54/53 = über 1 also 2. jahr + Multi-Zitat Zitieren
#6 17. April 2014 Zuletzt bearbeitet: 28. April 2014 AW: strtotime W: kalenderwochen falsch PHP: function wochen_im_jahr ( $Y ) { $dd = 15 ; $dt = new DateTime ; $mw = 0 ; for (;;) { $dt -> setDate ( $Y , 12 , $dd ); $ww = $dt -> format ( 'W' ); $ww = ltrim ( $ww , '0' )| 0 ; // ltrim() eigl. unnötig, aber der vollständigkeit halber mal drin gelassen if ( $mw > $ww ) break; $mw = $ww ; $dd += 7 ; } return $mw ;} PHP: print wochen_im_jahr ( 2014 ); // 52 print wochen_im_jahr ( 2015 ); // 53 damit kannst du gegenprüfen + Multi-Zitat Zitieren
#7 17. April 2014 AW: strtotime W: kalenderwochen falsch Danke für den Ansatz, doch das Problem ist das Datumsformat ansich, derzeit bei KW 52 -> KW(52) Montag:22.12.2014 bis Freitag:26.12.2014 und bei KW 53 (die im Jahr 2014 ja nicht existiert) KW(53) Montag:29.12.2014 bis Freitag:02.01.2015 Sprich eine Begrenzung ala Prüfe wie viele Wochen existieren bringt da leider nichts da ich genau das Datum brauche immer von MO - FR steh total aufn schlauch Der Spielplan wird immer nur von MO - FR ausgegeben. Kann ich das ganze irgendwie in mein Snipped implementieren (?? + Multi-Zitat Zitieren
#8 17. April 2014 AW: strtotime W: kalenderwochen falsch Dann prüf' doch einfach ob sich das Jahr in der KW ändert und wenn ja: diese Woche komplett ins neue Jahr mitnehmen. KW(52) Montag:22.12.2014 bis Freitag:26.12.2014 KW(1) Montag:29.12.2014 bis Freitag:02.01.2015 + Multi-Zitat Zitieren
#9 17. April 2014 AW: strtotime W: kalenderwochen falsch Sry für ot, aber was macht denn for(; ? + Multi-Zitat Zitieren
#10 17. April 2014 AW: strtotime W: kalenderwochen falsch Das ist ne Schleife ohne Bedingung (Endlosschleife). Im Grunde das selbe wie while (true) {} nur eben ohne zu prüfen ob "true" auch "true" ist PHP: for ( ; ; ) { // mach was } + Multi-Zitat Zitieren
#11 22. April 2014 AW: strtotime W: kalenderwochen falsch Mir gehts darum ich brauch folgende Ausgabe Kalenderwoche (17) Montag:21.04.2014 bis Freitag:25.04.2014 wie bekomm ich das nun .. + Multi-Zitat Zitieren