reh: Bilder sollen im Cache bleiben

Hallo,

Bei vielen php-Seiten, besonders Foren, fällt mir auf, dass die Bilder vom Browser nicht gecacht und bei jedem Browserstart neu geladen werden.

Wie kann ich das vermeiden? Bei "normalen" Seiten gehts ja auch (im Browser eingestellt, dass er sie behalten soll) Was ist bei PHP-Seiten anders? (keine generierten Bilder)

Ich surfe normal mit der Einstellung "nur geladene Bilder anzeigen" und die sind jeden Tag wieder weg und das Forum wird ewig breit, da alle Bildchen lange Alttexte haben und i.d.R. der Zeilenumbruch verboten ist.

Im Quelltext stehen keine Metatags, die was mit dem Cache zu tun haben.

  1. Moin!
    man kann auch  mit einer PHP-Anweisung das cachen verhindern. wenn du eine forumseite im cache hast und du das nächste mal drauf gehst wird die gecachte seite angezeigt, aber nicht die aktuellste. das dürfte wohl ein grund dafür sein, dass der frenbetreiber den cache unterdrückt.
    tschüss ichen

    --
    Selfcode: sh:( fo:| br: n4:& ie:% mo:| mo:| de:] zu:) fl:| ss:| ls:[ js:|
    1. Hello,

      man kann auch  mit einer PHP-Anweisung das cachen verhindern. wenn du eine forumseite im cache hast und du das nächste mal drauf gehst wird die gecachte seite angezeigt, aber nicht die aktuellste. das dürfte wohl ein grund dafür sein, dass der frenbetreiber den cache unterdrückt.

      Ich denke, dass der Grund woanders liegt. Wenn die Bilder durch ein einfaches PHP-Script ausfgeliefert werden, dass nur den MIME-Type und die Bilddaten sendet, dann hat der Browser id.R. keine Veranlassung dazu, das Bild ordnungsgemäß zu cachen. Dazu muss man auch die Header für last_modified und revalidate mitsenden.

      In PHP sieht das dann so ähnlich aus:

      wenn ($_SERVER['HTTP_IF_MODIFIED_SINCE']) nicht mitgesendet wurde
      oder die darin enthaltene Zeitangabe zu alt ist

      {
        header (make_content_type($bildtyp));
        header ("Last-Modified: $last_modified");
        echo $picdata;
      }

      sonst

      {
        header("HTTP/1.0 304 Not Modified");
        header("Cache-Control: max-age=86400, must-revalidate");
      }

      Harzliche Grüße aus http://www.annerschbarrich.de

      Tom

      --
      Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
      Nur selber lernen macht schlau
      1. Ich denke, dass der Grund woanders liegt. Wenn die Bilder durch ein einfaches PHP-Script ausfgeliefert werden ...

        das ist es eben, es sind ganz normale Bilder, keine dynamisch erzeugten, sowas wie logo.gif, die auf dem Server liegen und nach jedem Browserstart neu geladen werden.