Mailinglisten-Archive |
Hallo Liste, ich versuche jetzt schon seit einiger Zeit ein mit PHP erzeugtes Bild im Browsercache abzulegen. Ich habe mir eine PHP Datei geschrieben in der ich den Header und das Bild ausgeben, in dieser Datei wird über parse_ini_file und mit require_once jeweils eine weitere Datei hinzugefügt. In der Klasse wird dann in einer MySQL Tabelle gezählt wie oft das Bild aufgerufen wird. Jetzt soll das Bild pro User nur einmal am Tag gezählt werden, dazu würde ich gerne das Bild im Browsercache ablegen. Zur Zeit funktioniert das so lange, bis der Anwender den Reload Button von seinen Browser klickt. Beim Klicken des Reload Button kommt sofort eine erneute Anfrage und der Counter in der Datenbank zählt nach oben. Ich würde das Bild gerne so im Cache ablegen, so das es nur möglich ist mit der Tastenkombination "Strg + Umschalt + Reload Browser (Browsercache aktualisieren)" einen erneuten Download vom Bild zu erzwingen. Zur Zeit verwende ich folgende Headerzeilen: $expire = 1380; // Lebensdauer der Seite im Cache in Minuten $exp_gmt = gmdate("D, d M Y H:i:s", time() + $expire * 60) ." GMT"; $mod_gmt = gmdate("D, d M Y H:i:s", getlastmod()) ." GMT"; // HTTP 1.0 header("Expires: " . $exp_gmt); header("Last-Modified: " . $mod_gmt); // HTTP 1.1 header("Cache-Control: public, max-age=" . $expire * 60); header("Content-Type: image/png"); Das ganze mit Cookies zu lösen geht nicht, da ich das Bild auf Fremden Web-Seiten einbinden lasse und pro Aufruf (Besucher) soll zum Schluß eine Gutschrift stattfinden. Bin über jeden Tipp sehr dankbar. Mit freundlichen Grüßen Bladeck Daniel
php::bar PHP Wiki - Listenarchive