Maxx: Affenformular - (alte) Daten aus dem Cache

Hallo Forumsgemeinde,

mein Formular postet an sich selbst, prüft und schreibt die eingegeben Daten in eine Datei. Im weiteren Verlauf des Scripts wird diese Datei vom Script wieder ausgelesen und die Ausgabe erzeugt.
Das funktioniert auch wunderbar, nach dem Absenden sehe ich die soeben eingegebenen Daten. Wechsel ich aber die Seite und kehre wieder zurück, so bekomme ich nicht die letzte Version, sondern die vorhergehende (die beim 1. Aufruf der Seite).
Hat der Browser eine alte Version aus dem Cache geholt? Aktualisiere ich die Seite stimmt auch meine Ansicht wieder.

Jetzt könnte ich <meta http-equiv="expires" content="0"> im head notieren, aber warum muss das sein? Der Browser hatte ja bereits eine aktuelle Version angezeigt. Wie bringe ich ihn dazu _diese_ zu cachen?

Selfverständlich habe ich schon das Archiv befragt, aber mit meinen bescheidenen PHP und HTTP Kenntnissen habe ich vermutlich nach den falschen Begriffen gesucht.

Grüße,

Jochen

  1. Wechsel ich aber die Seite und kehre wieder zurück, so bekomme ich nicht die letzte Version, sondern die vorhergehende (die beim 1. Aufruf der Seite).

    Jetzt könnte ich <meta http-equiv="expires" content="0"> im head notieren, aber warum muss das sein?

    header("Cache-Control: no-cache"); wäre angebrachter. Siehe auch HTTP/1.1, "Caching in HTTP", http://www.w3.org/Protocols/rfc2616/rfc2616-sec13.html#sec13.

    Außerdem ist "0" kein Datum, Expires: verlangt aber eines, siehe http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.21 und http://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.3.1. Dass ein Browser darauf freundlicherweise mit einem "ist abgelaufen" reagiert, wäre Glück.

    Der Browser hatte ja bereits eine aktuelle Version angezeigt. Wie bringe ich ihn dazu _diese_ zu cachen?

    So wie ich Dich verstanden habe, deutet es darauf hin, dass er die Seite wieder anzeigt, die ohne Abschicken des Formulars (POST) entstanden ist. Probiere Cache-Control aus, falls es nicht funktioniert, beschreibe die Vorgehensweise nochmals genau (wann wird welche URL wie und weshalb aufgerufen).

    1. Hallo,

      So wie ich Dich verstanden habe, deutet es darauf hin, dass er die Seite wieder anzeigt, die ohne Abschicken des Formulars (POST) entstanden ist.

      jein.

      1. Aufruf der Seite
      2. Formular ausfüllen
      3. Formular abschicken
      4. eingegebene Daten werden angezeigt
      5. Seite verlassen, zur Seite zurückkehren
      6. der Zustand von 1) wird angezeigt
      7. Seite aktualisieren
      8. Der Zustand von 4) wird angezeigt

      Probiere Cache-Control aus, falls es nicht funktioniert

      ich gehe davon aus, dass es funktioniert. Denn mit <meta http-equiv="expires" content="0"> (ob jetzt Datum oder nicht. Das kommt übrigens von http://de.selfhtml.org/html/kopfdaten/meta.htm#laden) geht es ja auch.
      Aber warum soll der Browser jedesmal neu laden, wenn er die richtigen Daten schon _hatte_

      beschreibe die Vorgehensweise nochmals genau (wann wird welche URL wie und weshalb aufgerufen).

      siehe sig.

      Grüße,

      Jochen