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).