Tom: Logout!

Beitrag lesen

Hello,

Ich schreibe ein Loginsystem (mit sessions). Nachdem sich der User ausgeloggt hat, ist seine session zwar gelöscht, aber wenn er den "zurück"-botton" betätigt, kommt er trotzdem auf die geschütze Seite zurück, da der Browser die Seite aus dem Cache lädt. Wie kann man das verhindern?

Das liegt daran, dass Du Session und Login durcheinanderbringst.
Eine Session hat erstmal nichts mit einem Login zu tun.
Das Login setzt später auf der Session auf, aber nicht umgekehrt.

PHP unterstützt Sessions in der Form, dass alle Seiten, die mit Session an den Browser ausgeliefert werden, diesen auch "höflich bitten", die Seite nicht im Cache abzulegen. Ob der Browser (und/oder alle Proxies auf der Strecke) sich daran hält, ist seine Sache.

Wenn Du also ALLE Seiten, die nicht cached werden sollen, grundsätzlich mit Session beginnst, dann sollte es im allgemeinen klappen. Dazu musst Du aber Dein Loginkonzept erstmal reparieren.

Der Client behält seine Session dann solange, bis er keine Lust mehr hat.
Man muss die Session nicht killen, wenn der Client sich abmeldet. Wenn man es tut, muss man aber auch dem Client einen leeren "Session-Cookie" senden, sofern man mit Cookies arbeitet. Das übersetzt PHP dann so, dass es den Cookie beim Client löschen setzt mit der Response.

Wichtig ist nur, dass man beim relogin die Sessiondatei LEERT, damit nicht ggf. ein neuer User auf der Sessiondatei des letzten arbeitet, und so an Daten gelangt, die ihm nicht gehören.

Harzliche Grüße aus http://www.annerschbarrich.de

Tom

--
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau