habe mir vor ein paar Tagen ein fertiges sessionbasiertes Community-Script runtergeladen und installiert (User können sich registrieren, einloggen, ausloggen, mySQL basiert)
Funktioniert auch soweit wunderbar, aber…
Nach dem Ausloggen (session_destroy) kann ich die letzte Seite immer noch mittels „Aktualiesieren“ aus dem Cache holen.
Haben schon versucht das Problem mit dem folgenden Header zu lösen, hat aber leider nicht funkioniert:
**
header („Expires: Mon, 26 Jul 1997 05:00:00 GMT“); // Datum der
Vergangenheit
header („Last-Modified: " . gmdate („D, d M Y H:i:s“) . " GMT“);
// immer geändert
header („Cache-Control: no-cache, must-revalidate“); // HTTP/1.1
header („Pragma: no-cache“); // HTTP/1.0
**
was kann ich noch tun um das Cache-Problem in den Griff zu kriegen?
ist das denn ueberhaupt ein problem ? soll der user sich doch nochmal die statische cache seite angucken duerfen, er wird doch auch bestimmt per back button andere vorhergehende seiten anschauen koennen oder nicht ?
sicher ist das ein problem!! es handelt sich dabei um eine user-community, wenn man sich ausloggt soll ein anderer user am pc natürlich nicht die möglichkeit haben daten des vorherigen nutzers anzuschauen…
ist das denn ueberhaupt ein problem ? soll der user sich doch
nochmal die statische cache seite angucken duerfen, er wird
doch auch bestimmt per back button andere vorhergehende seiten
anschauen koennen oder nicht ?
sicher ist das ein problem!! es handelt sich dabei um eine
user-community, wenn man sich ausloggt soll ein anderer user
am pc natürlich nicht die möglichkeit haben daten des
vorherigen nutzers anzuschauen…
Ich würde sagen, das Problem kann man kaum lösen…
Selbst bei den großen eMail Anbietern kann man per Zurück immer wieder zurück…
Obwohl… Hmm, und wenn Du die ganze Community in einem neuen Fenster öffnet, welches sich nach dem ausloggen automatisch wieder schließt? Das klappt zwar nur mit JavaScript, welches man ja bekanntermaßen abstellen kann, aber dadurch gäbe es keinen Zurück-Button mehr…
Oder wie wär’s mit einem Redirector, der den User sofort weiterleitet nach dem ausloggen. Beim Klick auf Zurück wird man dann sofort wieder vorwärts geleitet. (Obwohl man das auch mehr als einfach umgehen kann…)
Naja, oder Du könntest ja auf jeder Seite Deine SQL-DB abfragen, ob der User noch eingeloggt ist oder nicht…
Das waren hoffentlich genug Denkanstöße…
Gruß,
-Dav
Das Problem ist zu lösen, siehe GMX, da kommt man nach dem Ausloggen NICHT auf die letzte Seite zurück, auch nicht mit der Browser-History.
Java-Script Lösungen wären nicht geeignet, da müsste man JS nur deaktivieren und der ganze Schutz ist nutzlos.
Mein Session-Script funktioniert ja wunderbar, nur klappt das mit dem Cache noch nicht so ganz (trotz HTML und PHP no-cache header). Mit zurück und neu laden komm ich wieder auf die alte Page zurück…
Kennt jemand noch eine Lösung?
Ich würde sagen, das Problem kann man kaum lösen…
Selbst bei den großen eMail Anbietern kann man per Zurück
immer wieder zurück…
Obwohl… Hmm, und wenn Du die ganze Community in einem neuen
Fenster öffnet, welches sich nach dem ausloggen automatisch
wieder schließt? Das klappt zwar nur mit JavaScript, welches
man ja bekanntermaßen abstellen kann, aber dadurch gäbe es
keinen Zurück-Button mehr…
Oder wie wär’s mit einem Redirector, der den User sofort
weiterleitet nach dem ausloggen. Beim Klick auf Zurück wird
man dann sofort wieder vorwärts geleitet. (Obwohl man das auch
mehr als einfach umgehen kann…)
Naja, oder Du könntest ja auf jeder Seite Deine SQL-DB
abfragen, ob der User noch eingeloggt ist oder nicht…
Das waren hoffentlich genug Denkanstöße…
Gruß,
-Dav
GMX Header
Stimmt, bei GMX funktioniert das… *g*
Das ist mir zwar neu, aber was solls…
Ich hab die Header von denen einfach mal übernommen und etwas rumprobiert. Einfach eine Seite erstellt mit obigen GMX Headern und einem Link auf ne zweite Seite. Nachdem ich die zweite Seite besucht habe, habe ich die erste gelöscht und bin dann zurück gegangen. Und er hat mir eine leere Seite angezeigt! Also funktioniert das mit den Headern…
Das Problem ist zu lösen, siehe GMX, da kommt man nach dem
Ausloggen NICHT auf die letzte Seite zurück, auch nicht mit
der Browser-History.
Java-Script Lösungen wären nicht geeignet, da müsste man JS
nur deaktivieren und der ganze Schutz ist nutzlos.
Mein Session-Script funktioniert ja wunderbar, nur klappt das
mit dem Cache noch nicht so ganz (trotz HTML und PHP no-cache
header). Mit zurück und neu laden komm ich wieder auf die alte
Page zurück…
Kennt jemand noch eine Lösung?
Die Loesung ist denkbar einfach, starte seine Session einfach wie folgt:
Wenn du jetzt die Session via session_destroy(); beendest, kannst du dir zwar die Seite via „Back“ nochmal aus dem Cache holen, drueckst du jetzt aber „Reload“, verschwindet der Inhalt. Am besten baust du gleich nen Check oder sowas ein:
if (!session_is_registered(‚username‘)) {
header(„Location: login.php“);
}
oder sowas in der Art .
Bei mir klappt das mit dem session_cache_limiter(‚nocache‘); auf jeden Fall sehr gut. Solltest du trotzdem noch Probleme haben, meld dich nochmal.