phpbar.de logo

Mailinglisten-Archive

[php] An die Freaks: Session und Zurück-Taste im Browser

[php] An die Freaks: Session und Zurück-Taste im Browser

Volker Wambach volker.wambach at mako.de
Mit Dez 27 11:37:15 CET 2006


Hallo Christoph,

thx für den Tip.
Habs ausprobiert und es sieht erstmal nicht schlecht aus, ABER: Es werde 
mir nur Sessiondaten, die ich nicht möchte nun falsch angezeigt.
Beispiel: In ner Session stelle ich u.a. den Firmennamen 
(mehrmandantenfähiges Intranet) für die Kopfanzeige der Ausgabe ab. 
Wechsle ich nun die Firma und geh ins gleich Programm/Skript rein, dann 
hab ich (wohl ausm Cache) den Namen der "alten"/vorherigen Firma. Wenn 
ich dann die Seite nochmal lade, hab ichs OK.

Ich hab mal ein bisserl experimentiert und folgende Lösung scheint 
sauber zu funzen:

session_cache_limiter('public_no_expire');

Verwaltet mir den Cache sauber, auch bei Mandatenwechsel und mit "Back" 
vom Browser werden mir alle vorher getätigten Eingaben in der 
Selektionsmaske wieder angezeigt ... Auch die Ausgaben der Ergebnisse 
scheinen mir OK ...
Warum auch immer  ;-)  Ich teste weiter ...


Grüße aus Westmittelfranken



	Volker




>> irgendwie versteh ichs net, warum in der Konstellation die Werte bei
>> BACK NICHT angezeigt werden.
> 
> Der Session-Mechanismus von PHP schickt in der Standardeinstellung beim
> Session-Start einige Header mit, welche dem Client mitteilen, dass er
> ein Dokument bitte auf keinen Fall cachen und jeweils beim Server wieder
> anfragen soll. Konkret geht es um diese Zeile:
> 
> | Cache-Control: no-store, no-cache, must-revalidate, post-check=0,
> | pre-check=0
> 
> (Zeilenumbruch von mir eingefügt).
> 
> Nach Ergänzung des Testskriptes um folgende Zeile _vor_ dem Aufruf von
> session_start() [0]:
> 
> | session_cache_limiter('private_no_expire');
> 
> Sickt der Server nun folgende Info:
> 
> | Cache-Control: private, max-age=10800, pre-check=10800
> 
> Meint, dass das Dokument wieder gecached werden darf. Hat bei mir eben
> auch funktioniert.
> 
> Ansonsten solltest Du, wenn eine Anfrage nicht idempotent sein soll,
> eher GET als POST verwenden. Siehe dazu auch [1].
> 
> [0] <http://de.php.net/manual/de/function.session-cache-limiter.php>
> [1] <http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html>
> 


php::bar PHP Wiki   -   Listenarchive