Hello,
das Spannende dabei sind zwei Dinge:
1. Wie sorgt man dafür, dass nur berechtigte User ein Bild bekommen?
Das geht mit Sessions ganz toll, was aber, wenn auch User
ohne Sessions Bilder ausgeliefert bekommen sollen?
2. Wie sorgt man dafür, dass das Bild nicht bei jedem Request
über die Leitung saust, auch wenn es sich nicht geändert hat?
// prüfen, ob das Bild im Server neuer ist als im Cache des Browsers
$last_modified = gmdate('D, d M Y H:i:s',filemtime(PICPATH.$filename)).' GMT';
if (isset($_SERVER['HTTP_IF_MODIFIED_SINCE']))
{
// parse header
$if_modified_since = preg_replace('/;.*$/', '', $_SERVER['HTTP_IF_MODIFIED_SINCE']);
if ($if_modified_since == $last_modified)
{
// the browser's cache is still up to date
header("HTTP/1.0 304 Not Modified");
header("Cache-Control: max-age=86400, must-revalidate");
return true;
}
}
Ist ein Ausschnitt aus meiner Funktion.
Wüsste gerne, ob max-age=86400 nicht zu wenig ist. Sind wohl Sekunden und dann wäre das ein Tag...
Was muss man schreiben, wenn man nur bei einem neueren Bilddatum ein Revalidate will?
Grüße
Tom