Laden Sie die Seite neu, wenn Sie auf die Schaltfläche "Zurückschlagen" klicken

8

Ich habe eine Webseite, die eine Anmeldung erfordert. Sobald sich ein Benutzer eingeloggt hat, starte ich die Sitzung und sobald er sich abmeldet, zerstöre ich es, aber wenn ich auf die Rückseite drücke, erscheint wieder die Benutzerprofilseite, die idealerweise nicht sein sollte, da sich der Benutzer abgemeldet hat. Es funktioniert jedoch einwandfrei, wenn ich die Seite nach dem Abmelden neu lade.

Es ist ein lokaler Chatraum, wo alle online und eingeloggt miteinander chatten können. Es gibt drei Seiten: login.php , auth.php , logout.php

login.php ist die gemeinsame Anmeldeseite mit einem Formular. auth.php hat eine div zeigt alle vorherigen Chats bis jetzt an, eine Textbox und share button wenn ein Formular erneut an die auth.php gesendet wird, so dass jedes Mal, wenn das Formular gepostet wird, der Chatpost an die Datenbank gesendet wird und auth neu geladen wird die neueste Datenbank innerhalb der Chat-Div ..

Jetzt ist das Problem, sobald ich abmelde ich alle Variablen aufheben und die Sitzung zu zerstören, aber selbst dann, wenn ich die Zurück-Taste im Browser (Safari) drücken, ist die vorherige Version von auth.php ohne den letzten Chat-Eintrag sichtbar, die im Idealfall sollte nicht als die Sitzung zerstört wird. Ich habe eine Sitzungsvalidierung in auth.php eingerichtet, also möchte ich, dass auth.php neu lädt, wenn der Benutzer sich nach dem Abmelden erneut anmeldet.% Co_de% zeigt an, dass "Sie nicht eingeloggt sind"

Ich habe es versucht

%Vor%

Entschuldige die langwierige Frage, aber ich brauche wirklich Hilfe dazu.

    
tushar 05.09.2010, 09:30
quelle

6 Antworten

6

Diese Header erzwingen, dass der Browser und gegebenenfalls Proxys die Seite nicht zwischenspeichern und eine neue Anfrage an den Server für diese Seite erzwingen:

%Vor%     
aularon 05.09.2010, 09:33
quelle
9
%Vor%

Das funktioniert bei mir auf FF3.6, IE7, IE8, Chrome5 ( wenn die Browser-Taste gedrückt wird, die Seite ist immer RELOADED )

Eine andere Lösung besteht darin, genau die gleichen Header zu senden, die von session_start() function gesendet werden, sehr ähnlich zu den obigen, aber noch reichhaltiger:

%Vor%

HINWEIS: Auch die hier gezeigte Reihenfolge ist die gleiche wie die von session_start() gesendete Reihenfolge (Sie können dies mit HttpFox Addon für FF)

    
Marco Demaio 22.05.2011 16:12
quelle
4

Fügen Sie für eine reine JavaScript-Lösung das einfach Ihrem HTML hinzu:

%Vor%

Der Code weist der versteckten Eingabe einfach einen Wert zu, der nach dem Klicken auf die Zurück-Schaltfläche erhalten bleibt. Dies wird dann verwendet, um festzustellen, ob die Seite veraltet ist. In diesem Fall wird sie erneut geladen.

    
Ziad 28.01.2015 06:38
quelle
0

Ohne die URL zu ändern, fügen Sie diese in das head-Tag ein.
Das Skript verwendet zwei Cookies:
- eine zu speichern, wenn die Seite besucht wurde - Einen zu speichern, wenn die Reaload ausgelöst wurde

%Vor%     
Gratian 11.03.2012 19:35
quelle
0

Ich verwende eine gemischte Lösung, da ich keine browserübergreifende Methode gefunden habe, die Seite neu zu laden, nachdem ich den Zurück-Knopf gedrückt habe.

Zunächst füge ich allen meinen Seiten einige Meta-Tags hinzu:

%Vor%

Zweitens füge ich das folgende Javascript auf dem Tag auf allen meinen Seiten hinzu:

%Vor%

Ich verwende dieses Update auf einer meiner Websites und es funktioniert gut in IE 10, Safari und Chrome.

    
Leon 30.11.2014 06:52
quelle
0

Ich habe viele Lösungen ausprobiert, aber was für mich funktionierte, ist diese einfache Codezeile.

%Vor%

Entladen Sie das Ereignis mit dem body-Tag und überprüfen Sie Ihr Problem.

    
Shwet 26.10.2015 12:40
quelle

Tags und Links