PHP Sessions und Back Button |
NetDrag
Foren-Team Threadstarter
Beiträge: 442 |
Ich hab grad ein Problem mit Sessions in PHP.
Ich hab ein Login, dann die Seiten des Adminbereichs, und dann der Logout.
Aber wenn ich den Logout durchführe wird die Session zwar zerstört, aber wenn ich dann im Browser auf back und dann auf Reload drücke wird sie wieder hergestellt.
Hatte jemand schon mal so ein Problem?
---
We are born wet, naked and hungry, then things got worse!
|
 Profil
Website
Editieren
Zitieren
|
Manticor
Quasselstrippe
Beiträge: 240 |
Wenn nichts mehr hilft, hilft rohe Gewalt :
http://www.dclp-faq.de/q-sessions-loeschen.html
---
|
 Profil
Website
Editieren
Zitieren
|
NetDrag
Foren-Team Threadstarter
Beiträge: 442 |
Danke, aber leider nicht das was ich suche.
Wenn ich die Sessiondatei auch lösche, legt mir PHP eine neue Session mit der gleichen Session_id an. und schon bin ich wieder eingeloggt
---
We are born wet, naked and hungry, then things got worse!
|
 Profil
Website
Editieren
Zitieren
|
Manticor
Quasselstrippe
Beiträge: 240 |
PHP legt da normalerweise keine neue an. Es ist sehr vermutlich noch als Cookie gesetzt.
Wenn Du serverseitig die Session von der Platte gelöscht hast, dann können die Daten nur noch aus dem Browsercache kommen. An den kommst Du nicht ran als Webmaster, sondern nur als User. Also User darn erinnern, dass er seinen Browser zusätzlich noch schließen soll.
Du kannst auch, statt die Session zu löschen alle registrierten Werte auslesen und mit einem Leerwert füllen. Dann hast Du das gleiche Ergebnis: Auf den anderen Seiten kommen nur noch Daten an, die Du leicht als ungültig filtern kannst.
Manti
---
|
 Profil
Website
Editieren
Zitieren
|
NetDrag
Foren-Team Threadstarter
Beiträge: 442 |
Tja das mit dem leerfüllen, geht nicht weil ich mich dann ja danach nciht mehr einloggen kann.
Und den User daran zu erinnern das Browserfenster zu schließen ist mir leider nciht sicher genug. Es geht um sehr sensible Daten.
Und die Session wird nicht durch Cookies übertragen sondern durch SID. Ich weiß ja nicht ob Cookies eingeschaltet sind. Und Fallback ist ir zu Aufwendig und zu unsicher.
Aber ich hab das problem mittlerweile schon gelöst und jetzt ne ziemlich sichere Sache.
Hab der Redaktion schon angeboten nen Artikel dazu zu schreiben.
Danke trotzdem.
_________________
We are born wet, naked and hungry, then things got worse!
---
We are born wet, naked and hungry, then things got worse!
|
 Profil
Website
Editieren
Zitieren
|
stalkerX
Mausakrobat
Beiträge: 183 |
ich hatte auch das problem, auch die lösung. aber sag wie du das ganze gelöst hast, würde mich interessieren - danke!
---
.: Web 2.0 Entwickler & seine Notizen :.
|
 Profil
Website
Editieren
Zitieren
|
NetDrag
Foren-Team Threadstarter
Beiträge: 442 |
ich hab nen loginstatus in den Sessions gesetzt und nur wenn man den hatte (und den bekam man nur auf der seite wo man benutzername und passwort einträgt) konnte man sich einloggen. Beim logout wurde der status gelöscht.
---
We are born wet, naked and hungry, then things got worse!
|
 Profil
Website
Editieren
Zitieren
|
Manticor
Quasselstrippe
Beiträge: 240 |
Also irgendwie geht mir das etwas arg Grundsätzlich und unverständlich zu.
"Tja das mit dem leerfüllen, geht nicht weil ich mich dann ja danach nciht mehr einloggen kann."
Diesen Zusammenhang sehe ich nicht. Wenn Du auf einer Seite alle Sessionvariablen als leer definierst, kannst Du Dich doch wieder einloggen... Auf der Loginseite wird einfach festgestellt: Keine gültigen Sessioninhalte, ergo noch nicht eingeloggt...
"Und die Session wird nicht durch Cookies übertragen sondern durch SID. Ich weiß ja nicht ob Cookies eingeschaltet sind. Und Fallback ist ir zu Aufwendig und zu unsicher. "
Ist ja dann das Gleiche in grün. Eigentlich ja noch besser, da die Daten dann ja nur bei Dir ruhen und nicht beim User. Also sorg dafür, dass Deine Sessions von Deinem Server verschwinden und der User kann so oft zurück gehen wie er will, die Session ist gelöscht. Einfach die Formulatfelder durch die - ja nun leeren oder ungültigen - Sessionvariablen setzen.
"ich hab nen loginstatus in den Sessions gesetzt und nur wenn man den hatte (und den bekam man nur auf der seite wo man benutzername und passwort einträgt) konnte man sich einloggen. Beim logout wurde der status gelöscht. "
Und wo hast Du den Status abgelegt? Wenn Du Angst um die Daten in Deinen Sessions hattest, dann musst Du das doch auch mit allen anderen Daten haben.
Gruss, Manti
---
|
 Profil
Website
Editieren
Zitieren
|
NetDrag
Foren-Team Threadstarter
Beiträge: 442 |
Ne, hab keine Angst um meine "Sessiondaten". Hatte als ich das Thema gepostet hab den Wald vor lauter Bäumen nciht mehr gesehen. Passiert mir zwischendurch. Habs jetzt ganz einfach gelöst und eigentlich auch keine Probleme mehr.
---
We are born wet, naked and hungry, then things got worse!
|
 Profil
Website
Editieren
Zitieren
|
mattin
Pixelschubser
Beiträge: 1 |
Hi,
das Problem interessiert mich auch, bin aber totaler Laie, es wäre daher nett auch mal den entsprechneden Code zu posten oder zu mailen.
Es sei denn, das ist ganz geheim....
Danke schon mal
Mattin
|
 Profil
E-Mail
Editieren
Zitieren
|
ReinerK
Pixelschubser
Beiträge: 1 |
Hi,
ich bin gerade dabei das Problem für JSP mit dem Turbine-Framework zu lösen. Was ich schon weiss, ist:
Laut der HTTP 1.1 Sezifikation, Abschnitt 13.13, soll der Back-Button die Seite so anzeigen, wie der Benutzer sie (damals) gesehen hat. Daher holen viele Browser neuerdings die Seiten aus dem Cache. Das heisst natürlich auch, dass man dann am Server nichts mehr tun kann, denn die Anfrage kommt erst gar nicht zum Server, sondern bleibt im Cache hängen.
Was man tun kann: das Cache-Verhalten der Seiten steuern. Im Microsoft Base Article 199805 wird folgender Code verwendet:
<%@ Language=VBScript %>
<% Response.CacheControl = "no-cache"
Response.AddHeader "Pragma", "no-cache"
%>
Leider weiss ich (noch) nicht, was Response in PHP oder Java entspricht... jedenfalls muss man an den HTTP-Header ran!
siehe auch: Microsoft Knowledge Base Article - 199805
|
 Profil
Editieren
Zitieren
|