Immer gern.
Mit den rewrite rules kann ich Dir allerdings grad nicht weiterhelfen - da müsste ich selbst suchen ![]()
Aber hier im Forum gibts einige, die das drauf haben (die machen bestimmt gerade Mittagsschlaf ... eigtl keine schlechte Idee
)
Beiträge von cottton
-
-
Das sieht mir dann nach .htaccess aus.
Guck mal hier: http://stackoverflow.com/questions/2010…-variables-postZitatYou are redirecting to a different url (although it is probably the same url, it's stil a redirect), causing POST information to get lost.
(ich hoffe Du kannst engl =) -
Dann jetzt mal mit doctype ect:
PHP
Alles anzeigen<!doctype html> <html> <head> <meta charset="utf-8"> <title></title> </head> <body> <?php $nutzer = trim($_POST['nutzer']); $kennwort = trim($_POST['kennwort']); var_dump($_POST); if ($nutzer != "" AND $kennwort != "") { echo "Habe Daten."; } else { echo "Keine Eingabe."; } ?> <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST" enctype="application/x-www-form-urlencoded"> <p>Benutzernamen:<br /> <input type="text" name="nutzer" size="20" maxlength="50" /></p> <p>Kennwort:<br /> <input type="password" name="kennwort" size="20" maxlength="50" /></p> <input type="submit" name="" value="Save" /> </form> </body> </html>
Das einzige (das ich kenne und) das POST "leert" ist in der php.ini der Schlüssel: enable_post_data_reading
aber dann hätte das andere Script auch nicht funktioniert.Wenn das jetzt nicht läuft, dann weiß ich auch nicht weiter

-
was kam hier raus: Zugangsabfrage über PHP/SQL
? -
-
probier mal das hier:
PHP
Alles anzeigen<?php echo 'PHP_VERSION: ' . PHP_VERSION . '<br>'; echo 'REQUEST_METHOD: ' . $_SERVER['REQUEST_METHOD'] . '<br>'; echo 'CONTENT_TYPE: ' . $_SERVER['CONTENT_TYPE'] . '<br>'; echo 'HTTP_ACCEPT: ' . $_SERVER['HTTP_ACCEPT'] . '<br>'; var_dump($_POST); ?> <form action="" method="POST" enctype="application/x-www-form-urlencoded"> <input type="text" name="a" value="test" /></p> <input type="text" name="b" value="test" /></p> <input type="text" name="c[]" value="test" /></p> <input type="submit" name="submit" value="submit" /> </form> <?php exit; // output: // PHP_VERSION: 5.6.11 // REQUEST_METHOD: POST // CONTENT_TYPE: application/x-www-form-urlencoded // HTTP_ACCEPT: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 // array(4) { ["a"]=> string(4) "test" ["b"]=> string(4) "test" ["c"]=> array(1) { [0]=> string(4) "test" } ["submit"]=> string(6) "submit" } -
Auch wenn Du in beide Felder etwas eingetragen hast und abgeschickt hast?
Teste mal mit
EDIT:
ein "paar" Ursachen:
http://stackoverflow.com/questions/1282…form-submissionStichworte:
- htaccess
- form enctype="application/x-www-form-urlencoded"
- HTTP to HTTPS, the $_POST comes empty
usw -
Das ... raff ich auch grad nicht

mach mal n var_dump() als Testausgabe:PHP
Alles anzeigensession_start(); $nutzer = trim ($_POST['nutzer']); $kennwort = trim ($_POST['kennwort']); var_dump($_POST['nutzer']); var_dump($_POST['kennwort']); if ($nutzer != "" AND $kennwort != "") // hier dann auch die vars nutzen die du oben mit trim() bearbeitest. sonst macht das trim nämlich keinen sinn :) { echo "Habe Daten."; } else { echo "Keine Eingabe."; }
was wird ausgegeben? -
So langsam wird es wohl Zeit sich darum zu kümmern. Hab daher mal nachgelesen worum es eigtl. geht.
Dem Benutzer soll also klar gemacht werden, dass "wir" Cookies nutzen und auf seinem Speichermedium ablegen.
obwohl wir das ja nicht direkt können, sondern der Benutzer durch die von ihm genutzte Software das ablegen zulässtIch hatte einige "fertige" Scripte dazu gesehen.
Das Problem das ich damit hab ist, dass alle JS nutzen. Warum? So ein Quark. Hat der Nutzer kein JS laufen, dann wird er nicht informiert.
Ausserdem ist es via PHP (mMn) viel einfacher diese Zustimmung einzuholen / einzubauen.Hier mal das PHP Script (erstmal ohne Text):
FILE: cookie_consent.phpPHP
Alles anzeigen<?php // cookie settings $c_name = 'cookie_consent'; if(isset($_COOKIE[$c_name ])and $_COOKIE[$c_name ] === 'y'){ unset($c_name ); return; } $c_value = 'y'; $c_expire = time() + 3600 * 24 * 365; // now + sec * hours * days $c_path = '/'; $c_domain = $_SERVER['SERVER_NAME'] === 'localhost' ? null : "." . $_SERVER['SERVER_NAME']; $c_secure = (isset($_SERVER['HTTPS'])and !empty($_SERVER['HTTPS'])); $c_httponly = true; // form settings $f_button_name = 'consent'; $f_button_value = 'OK'; if(isset($_POST[$f_button_name])and $_POST[$f_button_name] === $f_button_value){ setcookie($c_name, $c_value, $c_expire, $c_path, $c_domain, $c_secure, $c_httponly); header( 'Location: ' . $_SERVER['PHP_SELF'] . ( !empty($_SERVER['QUERY_STRING']) ? '?' . $_SERVER['QUERY_STRING'] : '' ) ); exit(0); } ?> <!doctype html> <html> <head> <meta charset="utf-8"> <title>toDo</title> </head> <body> toDo <form action="" method="POST" enctype="application/x-www-form-urlencoded"> ich akzeptiere: <input type="submit" name="<?php echo htmlspecialchars($f_button_name); ?>" value="<?php echo htmlspecialchars($f_button_value); ?>" /> </form> </body> </html> <?php exit(0); ?>
Dieses File wird einfach in die vorhandene Seite eingebaut per:PHP// am anfang der index.php require('cookie_consent.php'); // und hier dann der anfang deiner page ...Der Ablauf ist simpel:
- wurde noch nie akzeptiert, dann zeige Formular an und verhindere den weitren Ablauf der Seite (exit())
- wurde Form abgesandt, dann erstelle Cookie und leite weiter zur URL (die, die eigtl aufgerufen wurde -- GET-Parameter bleiben also erhalten)
- wurde cookie gefunden (akzeptiert), dann sind wir sofort wieder aus der cookie_consent.php rausJetzt überlege ich nur noch, was alles an Text rein kann, soll, muss.
Evtl hab ich auch ein paar Fehler?
Jemand Lust mit zu machen?
Hier die cookie_consent.php mit dem momentanen Text:PHP
Alles anzeigen<?php // cookie settings $c_name = 'cookie_consent'; if(isset($_COOKIE[$c_name ])and $_COOKIE[$c_name ] === 'y'){ unset($c_name ); return; } $c_value = 'y'; $c_expire = time() + 3600 * 24 * 365; // now + sec * hours * days $c_path = '/'; $c_domain = $_SERVER['SERVER_NAME'] === 'localhost' ? null : "." . $_SERVER['SERVER_NAME']; $c_secure = (isset($_SERVER['HTTPS'])and !empty($_SERVER['HTTPS'])); $c_httponly = true; // form settings $f_button_name = 'consent'; $f_button_value = 'OK'; if(isset($_POST[$f_button_name])and $_POST[$f_button_name] === $f_button_value){ setcookie($c_name, $c_value, $c_expire, $c_path, $c_domain, $c_secure, $c_httponly); header( 'Location: ' . $_SERVER['PHP_SELF'] . ( !empty($_SERVER['QUERY_STRING']) ? '?' . $_SERVER['QUERY_STRING'] : '' ) ); exit(0); } ?> <!doctype html> <html> <head> <meta charset="utf-8"> <title>toDo</title> <style type="text/css"> body{ font-family: Georgia, serif; } q{ quotes: "«" "»"; font-style: italic; color: #666; } blockquote{ color: #999; } </style> </head> <body> <h1>Wir möchten Dein Einverständnis</h1> <h2>Datenschutzrichtlinie für elektronische Kommunikation ("ePrivacy Directive")</h2> <h2>"Cookie-Richtlinie" (EU)</h2> <p> Cookies erleichtern die Bereitstellung unserer Dienste. Mit der Nutzung unserer Dienste erklärst Du Dich damit einverstanden, dass wir und die von uns genutzten Dienstanbieter (siehe "Drittanbieter Cookies") Cookies verwenden. </p> <form action="" method="POST" enctype="application/x-www-form-urlencoded"> ich akzeptiere: <input type="submit" name="<?php echo htmlspecialchars($f_button_name); ?>" value="<?php echo htmlspecialchars($f_button_value); ?>" /> </form> <h3>Weitere Informationen</h3> <blockquote cite="https://de.wikipedia.org/wiki/HTTP-Cookie"> <q> Ein Cookie ([ˈkÊŠki]; englisch „Keks“) ist eine Textinformation, die die besuchte Website (hier „Server“) über den Browser im Rechner des Betrachters („Client“) platziert. Der Cookie wird entweder vom Webserver an den Browser gesendet oder von einem Skript (etwa JavaScript) in der Website erzeugt. Der Client sendet die Cookie-Information bei späteren, neuen Besuchen dieser Seite mit jeder Anforderung wieder an den Server. </q> <br> Quelle und weitere Informationen: <a target="_blank" href="https://de.wikipedia.org/wiki/HTTP-Cookie">https://de.wikipedia.org/wiki/HTTP-Cookie</a> </blockquote> <h4>Unsere Cookies</h4> <p> Wir verwenden in erster Linie so genannte "Session-Cookies". Diese enthalten keine persönlichen Daten, sondern nur eine eindeutige Session-ID. Diese ID verweist auf eine Session (Datei) auf unserem Server, in der benötigte temporäre Werte abgelegt werden können. Beipiele für temporäre Werte sind z.B. auf unseren Seiten zuvor gewählte Einstellungen. <br> Session-Cookies werden für gewöhnlich beim Verlassen der Seite vom Browser gelöscht (<i>siehe Dokumentation des von Dir genutzten Browsers</i>). </p> <p> Wie verwenden auch Cookies, die für eine bestimmte Zeit gültig sind, oder bis Du sie löschst. Diese Cookies enthalten z.B. Werte zur Identifikation und werden von uns u.a. für die Benutzeranmeldung (Login) genutzt. </p> <h4>Drittanbieter Cookies</h4> <p> Drittanbieter Cookies werden von den von uns genutzten Dienstanbietern gesetzt: <br> <ul> <li> <b>Google+</b> +1-Schaltfläche der Google Inc. </li> <li> <b>Google Adsense</b> Werbeanzeigen der Google Inc. </li> <li> <b>Google Analytics</b> Webanalysedienst der Google Inc. </li> </ul> </p> <h4>Cookies akzeptieren/ablehnen</h4> <p> Du entscheidest, ob Cookies akzeptiert oder abgelehnt werden. <br> Cookies werden an den von Dir genutzten Browser gesendet. Ob Dein Browser Cookies speichert, hängt von dessen Einstellungen ab. Die von uns und von uns genutzten Dienstanbietern gesendeten Cookies können also nur auf Deinem Speichermedium abgelegt werden, wenn Du es zulässt. Für gewöhnlich akzeptieren Browser Cookies stillschweigend durch deren Standardeinstellungen. <br> <blockquote cite="https://de.wikipedia.org/wiki/HTTP-Cookie"> <q> Cookies werden ausschließlich vom Client verwaltet. Somit entscheidet der Client, ob beispielsweise ein Cookie gespeichert oder nach der vom Webserver gewünschten Lebensdauer wieder gelöscht wird. <br> [...] <br> Gängige Browser erlauben dem Nutzer, den Umgang mit Cookies mehr oder weniger festzulegen, <br> [...] <br> </q> <br> Quelle "Funktionsweise": <a target="_blank" href="https://de.wikipedia.org/wiki/HTTP-Cookie">https://de.wikipedia.org/wiki/HTTP-Cookie</a> </blockquote> <i>Wie Du Cookies ablehnst entnimmst Du bitte der Dokumentation des von Dir genutzten Browsers.</i> </p> <h4>Deaktivierung von Cookies</h4> <p> Für gewöhnlich kannst Du Cookies einsehen, verändern, löschen und blockieren. Wo und wie entnimmst Du bitte der Dokumentation des von Dir genutzten Browsers und/oder Browsererweiterungen. </p> <p> Die Funktionalität dieser Website kann eingeschränkt sein, wenn Du Cookies veränderst, deaktivierst, löschst oder blockierst. </p> </body> </html> <?php exit(0); ?>Live test: http://www.cottton.net/index.php?para1=1¶2=2¶3=3
Files: html-seminar.de/woltlab/attachment/845/ -
Schreib mal ganz an den Anfang des Scripts:
bei mir funktioniert es:
PHP
Alles anzeigen<?php ini_set('error_reporting', -1); ini_set('display_errors', -1); session_start(); $nutzer = trim ($_POST['nutzer']); $kennwort = trim ($_POST['kennwort']); if ($_POST['nutzer'] <> "" AND $_POST['kennwort'] <> "") { echo "hab nutzer und kennwort"; } else { echo "hab KEINE daten"; } ?> <form action=" <?php echo $_SERVER['PHP_SELF']; ?> " method="post" enctype="text/html"> <p>Benutzernamen:<br /> <input type="text" name="nutzer" size="20" maxlength="50" /></p> <p>Kennwort:<br /> <input type="text" name="kennwort" size="20" maxlength="50" /></p> <input type="submit" name="" value="Save" /> </form> <?php
Wenn ich Benutzernamen und Kennwort eingebe und das Formular abschicke, bekomme ich: hab nutzer und kennwortHinweise:
mysql_ Funktionen sind veraltet und unsicher.
Du schreibst auch Benutzereingaben direkt in die Sql-Query ! Das ist sehr unsicher!
Nutze besser mysqli_ oder PDO (suche im Forum oder Suchmaschiene).Du schreibst clear-text-passwords in die db! Das ist falsch.
Passworte gehören gehasht in abgespeichert (auch siehe Forum ...).Nutze beim input-Feld für das Passwort den typ "password".
Dadurch wird die Eingabe gepunktet (für nebenstehende nicht mitlesbar).Empfehlung:
nutze besser != oder !== bzw == und ===
anstatt <>
(oder empty() bzw !empty()) -
(das ist keine Frage, sondern ein Hinweis)
Warum anonymisieren?
Zitat von https://support.google.com/analytics/answer/2763052?hl=deDiese Funktion wurde entwickelt, damit Websiteinhaber ihre eigenen Datenschutzbestimmungen oder die Empfehlungen der lokalen Datenschutzbehörden in bestimmten Ländern einhalten können, wenn diese eine Speicherung der vollständigen IP-Adresse untersagen.
Wie?
http://blog.smarter-ecommerce.com/en/implementin…-anonymization/Zum Thema:
ich hab mir gerade den Arsch wund gesucht, da ich kein __utm.gif -request bekam.
Nachdem ich mir den Traffic mal genauer angesehen hab, fand ich:Code
Alles anzeigenhttp://www.google-analytics.com/ collect?v=1 &_v=j37 &aip=1 &a=*** &t=pageview &_s=1 &dl=*** &ul=de &de=UTF-8 &dt=*** &sd=24-bit &sr=1680x1050 &vp=1663x493 &je=1 &_u=*** &jid= &cid=*** &tid=UA-*** &z=***
eine Request auf google-analytics.com.
Was hier interessiert ist der Parameter:
der uns sag, dass aip (anonymizeIp) auf den Wert 1 gesetzt wurde.Was wohl (früher?) das __utm.gif war, ist jetzt wohl eine GET Request vom Typ text/html
Wie also prüfen, ob "anonymizeIp" aktiviert ist.
Seite neu laden,
Rechtsklick -> Element untersuchen (oder Firebug ect)
-> Netzwerk
Suchen/Filtern nach "analytics"
wodurch die Request "http://www.google-analytics.com/collect?v......" gefunden werden sollte.
Anklicken und im Header nach Parametern suchen,
dort sollte dann der Key "aip" (hoffenlich :)) mit dem Wert "1" auftauchen. -
Du nutzt LEFT JOIN auf `web_produktkategorien`.
Dabei sollte es doch zu jedem Datensatz in `web_produkte` auch einen passenden in `web_produktkategorien` geben, richtig?
Also zu jedem Produkt eine Kategorie.
Demnach solltest Du ein JOIN (kein LEFT) nutzen.
Bedenke dann aber auch, dass es keinen Datensatz gibt, wenn es zum Produkt keine Kategorie gibt.
Btw: Nutzt Du Fremdschlüssel ("foreign keys")?Will Dich jetzt aber nicht verwirren.
Ich hoffe ich hab verstanden, was Du suchst:SQL
Alles anzeigenSELECT `p`.`p_id`, `p`.`p_type`, `p`.`p_pkategorie`, `p`.`p_code`, `p`.`p_hersteller`, `p`.`p_serie`, `p`.`p_geraet`, `p`.`p_bezeichnung`, `p`.`p_bild`, `p`.`p_artnr`, `p`.`p_farbe`, `p`.`p_inhalt`, `p`.`p_preis`, `p`.`p_vk1`, `p`.`p_vk2`, `p`.`p_vk3`, `p`.`p_bestand`, `p`.`p_hinweis`, `p`.`p_status`, `pk`.`pk_id`, `pk`.`pk_titel` FROM `web_users_produktkategorien_settings` AS `s` -- du willst ja nur datensätze, welche zugelassen sind JOIN `web_produkte` AS `p` ON `p`.`p_pkategorie` = `s`.`pks_produktkategorieID` JOIN `web_produktkategorien` AS `pk` -- ON `p`.`p_pkategorie` = `pk`.`pk_id` WHERE `p_geraet` = ? AND `p_pkategorie` = ?
Jetzt versteh ich allerdings nicht, was Du hier warum auswählst.
NOTE: kürzere Namen wäre wiklich Augenfreundlicher und übersichtlicher, wenn man mal was sucht
zB
web_users_produktkategorien_settings
könnte
web_user_prodkatg_settings -
Bin gerade etwas müde, weiß also nicht was Du suchst.
Aber hier hast Du einen Fehler:
Warum:
(siehe Kommentare)PHPelseif ( @$_SESSION['schule'] == "foerderschule" // OK, ausser das @, aber das kann man machen OR "hauptschule" // hier ergibt die bedingung IMMER true zurück, denn ein nicht leerer string "ist etwas", also nicht "flasch" )
ändere das mal in das hier:
und noch besser ohne @ -
So nicht

Vorweg:
Du hast Fehler bei der Verwendung von "PHPecho "<div class="abstand_preis">"; // falsch //richtig: echo '<div class="abstand_preis">'; // oder echo "<div class={BACKSLASH}"abstand_preis{BACKSLASH}">"; // backslashes \ werden im forum nicht dargestellt -.-
und das Problem scheinst Du überall zu haben.Zum IF:
-
Klar geht das. Aber ich dacht Du weißt wie das geht =)
PHP
Alles anzeigen$wochentage = array( 'Sunday' =>'Sonntag', 'Monday' =>'Montag', 'Tuesday' =>'Dienstag', 'Wednesday' =>'Mittwoch', 'Thursday' =>'Donnerstag', 'Friday' =>'Freitag', 'Saturday' =>'Samstag' ); $wochen = array(); $date = new DateTime('last week last sunday'); $interval = DateInterval::createFromDateString('+1 day'); $period = new DatePeriod($date, $interval, 21, DatePeriod::EXCLUDE_START_DATE); // NEU: testweise 3 wochen foreach ( $period as $dt ){ $t = $dt->format("l"); $wochentag = $wochentage[$t]; $wochennummer = $dt->format("W"); $wochen[$wochennummer][] = $wochentag . " ". $dt->format("d.M.Y"); } /* $wochen_prefix: da wir in der zeit zurückgegangen sind, ist der prefix beim titel logischerwiese erstmal "Vorige" Woche solange wir nicht über die aktuelle woche sind. */ $wochen_prefix = 'Vorige'; /* $aktuelle_wochennummer: wie hatten in $wochen per $wochennummer die tage sortiert abgelegt. jetzt nutzen wir diesen wert ($wochennummer), um feststellen zu kömmen, ob wir den prefix von "Vorige" auf "Nächste" ändern müssen. */ $aktuelle_wochennummer = date('W', time()); foreach($wochen as $wochennummer => $woche){ if((int)$wochennummer === (int)$aktuelle_wochennummer){ // echo titel: echo 'Aktuelle Woche<br>'; // wir sind in der aktuellen woche -- also prefix auf "Nächste" setzen $wochen_prefix = 'Nächste'; } else{ echo $wochen_prefix . ' Woche<br>'; } echo implode(' | ', $woche) . '<br>'; } /* output: Vorige Woche<br> Montag 13.Jul.2015 | Dienstag 14.Jul.2015 | Mittwoch 15.Jul.2015 | Donnerstag 16.Jul.2015 | Freitag 17.Jul.2015 | Samstag 18.Jul.2015 | Sonntag 19.Jul.2015<br> Aktuelle Woche<br> Montag 20.Jul.2015 | Dienstag 21.Jul.2015 | Mittwoch 22.Jul.2015 | Donnerstag 23.Jul.2015 | Freitag 24.Jul.2015 | Samstag 25.Jul.2015 | Sonntag 26.Jul.2015<br >Nächste Woche<br> Montag 27.Jul.2015 | Dienstag 28.Jul.2015 | Mittwoch 29.Jul.2015 | Donnerstag 30.Jul.2015 | Freitag 31.Jul.2015 | Samstag 01.Aug.2015 | Sonntag 02.Aug.2015<br> */
könnte man noch schöner gestalten. Aber das überlass ich Dir =) -
Ich hatte angefangen mit Datetime zu antworten. Hab das dann aber wieder verworfen, weil ich dachte es wäre zu aufwendig.
Aber wie ich sehe kommst Du ja damit klar.Du hast schon alles richtig gemacht.
was Du einfach nur noch machen musstest ist die Woche zuvor als start anzugeben.PHP
Alles anzeigen$wochentage = array( 'Sunday' =>'Sonntag', 'Monday' =>'Montag', 'Tuesday' =>'Dienstag', 'Wednesday' =>'Mittwoch', 'Thursday' =>'Donnerstag', 'Friday' =>'Freitag', 'Saturday' =>'Samstag' ); $wochen = array(); // NEU: array später sortiert nach wochennummer $date = new DateTime('last week last sunday'); // NEU: last week $interval = DateInterval::createFromDateString('+1 day'); $period = new DatePeriod($date, $interval, 14, DatePeriod::EXCLUDE_START_DATE); // NEU: 14 statt 7 foreach ( $period as $dt ){ $t = $dt->format("l"); $wochentag = $wochentage[$t]; $wochennummer = $dt->format("W"); // NEU: gibt die wochennummer aus $wochen[$wochennummer][] = $wochentag . " ". $dt->format("d.M.Y"); // NEU: sammeln ... } // NEU: für jede woche ... foreach($wochen as $woche){ echo implode(' | ', $woche) . PHP_EOL; // implode bringt den vorteil, dass es am ende ein überflüssiges "|" gibt } /* output Montag 13.Jul.2015 | Dienstag 14.Jul.2015 | Mittwoch 15.Jul.2015 | Donnerstag 16.Jul.2015 | Freitag 17.Jul.2015 | Samstag 18.Jul.2015 | Sonntag 19.Jul.2015 Montag 20.Jul.2015 | Dienstag 21.Jul.2015 | Mittwoch 22.Jul.2015 | Donnerstag 23.Jul.2015 | Freitag 24.Jul.2015 | Samstag 25.Jul.2015 | Sonntag 26.Jul.2015 */ -
Ich denke Du willst sicher selbst bissl versuchen =)
daher hier der Ablauf:
erstmal die time-zone auf
oder wie Du es brachst.Dann holst Du Dir den jetzigen Tag.
Mit date() http://php.net/manual/de/function.date.php kanst Du Dir u.a. auch den momentanen tag als Zahl zurückgeben lassen.
zB
Jetzt willst Du ja von Montag aus mit der Ausgabe loslegen. Also gehen wir x Tage zurück:PHP$t = time(); // jetzt als unix timestamp (sekunden) $a_day = 60 * 60 * 24; // 60 sec * 60 min * 24 hours (ein tag in sekunden) // solange 1 tag abziehen, bis es montag (tag nummer 1) ist: while(date("N", $t) > 1){ $t -= $a_day; } echo date("N", $t); // '1' für montag
Jetzt willst Du ja noch eine Woche zurück. Also ziehst Du von $t noch eine Woche ab:PHP$a_week = $a_day * 7; // sekunden von 1 tag mal 7 tage $t -= $a_week; // ist nun der unix timestamp von letzer woche montag
Was Du jetzt noch machen musst:
eine Schleife, in der Du (zB) ein array mit der jeweiligen Woche und dessen tage befüllst.
Dazu zählst Du nach jedem Durchlauf der Schleife um 1 Tag hochPHPfor(... solange wir nicht am letzten gewünschten tag angekommen sind ...){ // ... den tag in array packen $result[$week][$day] = date('l (d.m.y)', $t); $t += $a_day; // nächste tag }
Das Format l (kleines L) gibt den geschriebenen Wochentag zurück. Allerdings in English -- müsstest Du dann noch mit dt ersetzen. -
geht noch einfacher (meiner Meinung nach =)
PHP
Alles anzeigen// siehe : http://php.net/manual/de/function.glob.php $verzeichnis = 'C:/path/path/'; // am besten path IMMER mit einem / enden lassen $datei = "info*"; // datei name (* als wildcard) $endung = ""; // endung der gesuchten dateien (wenn leer, dann alle) (endung immer mit . -- also zB ".php") foreach(glob($verzeichnis . $datei . $endung) as $match){ var_dump($match); }BTW -- Thea Sicherheit:
Daten maskieren beim Ausgeben:PHP
Alles anzeigen/* achtung: hir war ein fehler: original: echo "<a href="$datei/$dateiname" target="_blank">"; um es zu verdeutlichen (beachte die "): echo " <-- auf <a href=" <-- zu $datei/$dateiname " <-- auf target=" <-- zu _blank" <-- auf > " <-- zu ; richtig: echo '<a href="' . $datei . '/' . $dateiname . '" target="_blank">'; */ foreach ( $dateidateinamen AS $dateiname ) { $name = $dateiname; echo '<a href="' . htmlspecialchars($datei) . '/' . htmlspecialchars($dateiname) . '" target="_blank">'; echo htmlspecialchars($name); echo "</a>"; echo "<br />"; } -
flo96
würde noch prüfen, ob die eingetragene email eine (Anzahl 1) valide email ist.
Ich hab mal nen Testeintrag abgeschickt mit der email: fake@test.de,hanswienerschnitzel@gmail.comEs gibt fälle, bei denen sowas als Lücke ausgenutzt wird. Dabei werden viele viele email-Adressen per Komma angehangen und der Server fungiert als Spam-Verteiler.
Hier in Deinem Fall sollte das (noch) nicht passieren können. Falls Du aber das oder ein ähnliches Formular erweiterst
wie zB als Kontaktformular:
- User trägt sein Anliegen ein
- trägt seine email ein
- schick Formulat ab
- Du erstellst Serverseitig eine sofort-Antwort in etwa "Vielen Dank für Ihr interesse ... Ihre Nachricht wird sobald wie möglich bearbeitet. ..."Ein Angreifer könnte nun viele email-Adressen Komma-getrennt als email angeben,
und Dein Server sendet an all diese Adressen emails raus.(Ist ein bissl schlecht erklärt, aber der Sinn sollte klar sein)
Akzeptiere also nur valide emais (Anzahl 1)
http://php.net/manual/de/filter.examples.validation.phpPHP
Alles anzeigen$user_input = 'test@test.de,test2@test2.de'; if($user_input !== filter_var($user_input, FILTER_VALIDATE_EMAIL)){ echo "ERR -- diese email ist nicht valid"; } else{ echo "OK -- diese email ist valid"; }So, wollt nicht vom eigtl Thema ablenken, fand es aber wichtig (auch was wolf meinte zwecks sql) =)
-
REGEXP
SQLSELECT * FROM db.table WHERE `keywords` REGEXP '.*Motorrad.*|.*Fachbetrieb.*' OR `text` REGEXP '.*Motorrad.*|.*Fachbetrieb.*' ;
da geht bestimmt noch einiges am Pattern.
siehe:
http://dev.mysql.com/doc/refman/5.6…operator_regexp
https://dev.mysql.com/doc/refman/5.0…n-matching.htmlEDIT:
LIKE würde auch ~irgendwie funzen. Aber dann eben nur mit mehreren ORs.EDIT2:
test:SQL
Alles anzeigenCREATE DATABASE `test`; CREATE TABLE `test`.`new_table` ( `id` int(11) NOT NULL AUTO_INCREMENT, `keywords` varchar(45) NOT NULL, `text` varchar(45) NOT NULL, `descr` varchar(45) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=latin1; INSERT INTO `test`.`new_table` (`keywords`, `text`, `descr`) VALUES ('fach', 'betrieb', 'desc'), ('betrieb', 'Fach', 'desc'), ('Motorrad, Fachbetrieb', 'ein Motorrad Fachbetrieb und text', 'desc'), ('was anderes', 'was anderes', 'desc'), ('BEFORE_Motorrad_AFTER', 'betrieb', 'desc'), ('betrieb', 'BEFORE_Fachbetrieb_AFTER', 'desc'), ('was anderes', 'was anderes', 'desc'); SELECT * FROM test.new_table WHERE `keywords` REGEXP '.*Motorrad.*|.*Fachbetrieb.*' OR `text` REGEXP '.*Motorrad.*|.*Fachbetrieb.*' -- siehe: -- http://dev.mysql.com/doc/refman/5.6/en/regexp.html#operator_regexp -- https://dev.mysql.com/doc/refman/5.0/en/pattern-matching.html ; -- result: -- 3 Motorrad, Fachbetrieb ein Motorrad Fachbetrieb und text desc -- 5 BEFORE_Motorrad_AFTER betrieb desc -- 6 betrieb BEFORE_Fachbetrieb_AFTER desc