Hey Leute,
ich bräuchte ein paar Infos zum Zurück-Button des Browsers. Wenn man diesen Button drückt wird die Seite ja nicht neu geladen, sondern aus dem Cache, oder?
Gibt es irgendeine Möglichkeit mit javascript o.ä. dafür zu sorgen, dass die Seite nicht aus dem Cache geladen wird, sondern dass sie immer nue geladen wird, so dass die PHP scripts auf dem Server auch dann erneut ausgeführt werden?
Oder kann man zumindest mit java script erkennen, ob die Seite aus dem Cache geladen wurde und dann die Ausgabe ändern?
Ich habe auch mal wo gelesen, dass es eine Möglichkeit gibt das was für eine Seite in die Histrory geschrieben wird zu ändern, so dass eine andere Seite geladen wird wenn man den Zurück-Button drückt. Könnt ihr mir dazu was sagen?
Thx,
munich
Danke für die Antwort!
Wird die Seite dann einfach nicht im Cache gespeichert und damit dann nicht aus dem Cache geladen oder kann man dann den zurück button gar nicht verwenden?
thx
Hmm, irgendwie funktioniert das nicht…
Ich hab folgenden Code:
[code]<?xml version="1.0"?>
New Document
abc
[/code]
Wenn ich nun die Seite lade, dann auf irgendeine andere Seite gehe, nun die Datei auf dem Server ändere, z.B. statt abc schreibe ich xyz und dann den zurück button drücke, bekomme ich trotzdem abc angezeigt, er hat also nicht das neue Dokument geladen!
Wo liegt denn hier der Fehler oder hab ich die Funktion des Codes falsch verstanden?
thx,
munich
Naja, ich hab ein login script und wenn man sich dort nun abmeldet kann man ja mit dem zurück button zurück gehen. man ist dann natürlich trotzdem nicht wieder eingelogt, aber man kann den alten inhalt noch lesen und das würde ich gerne verhindern.
Dafür würde mir auf die Schnelle nur einfallen, einen (einmaligen!) Reload zu erzwingen.
Beispielsweise könntest Du nach Aufruf der Seite zwei Sekunden warten und dann die Seite neu laden lassen - da dann die Session nicht mehr existiert (Du hattest Dich ja zuvor ausgeloggt), wirst Du (hoffentlich) entweder auf die entsprechende Fehlerseite geleitet oder schlicht einen 401er erhalten.
Einfach nachm Einloggen nen link mit weiter und nen meta refresh von 3 Sekunden.
So von wegen: Sie werden gleich weitergeleitet oder klicken sie Hier.
Wer den Back-Button klickt hat selber schuld. Die meisten normalen User halten sich an so eine Message, weil sie sonst angst haben, dass was kaputt geht^^
Siehe SchülerVZ. Wenn man sich da nicht ausloggt und dann wieder einloggt nachdem alle Cookies gelöscht wurden vom PC kommt eine Meldung "Pöse pöse, du hast dich nicht ausgeloggt."
Was bei mir egal ist, da eh niemand an meinen PC darf und ohne den entsprechenden Cookie nicht eingeloggt ist. Der normale User macht sich natürlich in die Hose und versucht ab den Zeitpunkt sich immer auszuloggen.^^ Aber in der Regel logge ich mich ja eh überall aus, weil es so lustig ist.
Hast du die Seite mit den ergänzten Head-Tags schon neu geladen? (Vll ist in deinem Cache noch die Seite ohne Cache-Verbot).
Außerdem ist so ein Cache-Verbot natürlich nur ein “Vorschlag” an den Browser. Kein Browser muss sich daran halten, da das auf Clientseite abläuft.
php-Dateien aktualisiert es bei mir aber irgendwie standardmäßig.
Du solltest dir auch mal die HTTP Response Header anschauen, mit welchen das Dokument ausgeliefert wird - die haben vor per Meta gemachten Angaben bekanntlich Vorrang.
Soo,
ich hab mir die Page jetzt mal durchgelesen.
Darin ist ja folgender Code angegeben:
// disable any caching by the browser
header('Expires: Mon, 14 Oct 2002 05:00:00 GMT'); // Date in the past
header('Last-Modified: ' . gmdate("D, d M Y H:i:s") . ' GMT'); // always modified
header('Cache-Control: no-store, no-cache, must-revalidate'); // HTTP 1.1
header('Cache-Control: post-check=0, pre-check=0', false);
header('Pragma: no-cache'); // HTTP 1.0
Wo muss ich diesen Code denn in mein HTML oder PHP Dokument einfügen?
thx,
munich
Da bekomme ich aber folgenden Fehler:
Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING, expecting ‘,’ or ‘;’ in …/back-button/index.php on line 13
Das heißt ja quasi, dass ein ; fehlt, aber ich seh nicht wo…
Hoffe ihr könnt mir weiterhelfen!
Thx,
munich
Ah, hatt vergessen zwei Anführungszeichen zu escapen…
Leider funktioniert es trotzdem nicht. Er läd es trotzdem aus dem Cache.
Im iexplorer funktionierts, aber in firefox leider nicht… Gibt’s noch ne Lösung, die in allen Browsern funktionieren sollte?
Noch ne Idee?
Thx,
munich