phpbar.de logo

Mailinglisten-Archive

[php] header und erzeugte Bilder im Browser Cache ablegen

[php] header und erzeugte Bilder im Browser Cache ablegen

Daniel Bladeck daniel at bladeck.de
Mon Sep 26 07:12:11 CEST 2005


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