Fragen zu PHP-Sessions
exciter
- php
Hi Leute da das Session-System von PHP zwar einfach zu benutzen ist aber auch seine Tücken hat (oft wenig Kontrolle) benutz ich für meine Seite ein eigenes mit Datenbank-Backend. Jetzt hab ich schon oft gesehen dass bei PHP-Sessions, sobald der Zurückbutton des Browsers benutzt wird oder von einer externen Domain auf die Seite zugegriffen wird eine Seite erscheint mit Meldung Seite nicht mehr gültig... usw.. Wie macht PHP das? Ist doch Sache des Clients (zumindest history.back), oder? Und wie beendet PHP eine Session wenn das aktive Browserfenster geschlossen wird? Hoffe ihr könnt mir weiterhelfen!
Hallo,
Jetzt hab ich schon oft gesehen dass bei PHP-Sessions, sobald der Zurückbutton des Browsers benutzt wird oder von einer externen Domain auf die Seite zugegriffen wird eine Seite erscheint mit Meldung Seite nicht mehr gültig... usw.. Wie macht PHP das?
Gar nicht. Diese Meldung wird ausgegeben, wenn Du ein Formular per POST im Internet Explorer abschickst, von dort aus einen Link öffnest und dann auf zurück gehst. Die Tatsache, dass Sessions verwendet werden, ist unerheblich.
Und wie beendet PHP eine Session wenn das aktive Browserfenster geschlossen wird?
Die Session selbst wird nicht beendet, allerdings wird dem Browser mitgeteilt, dass er das Session-Cookie beim Beenden löschen soll. Daher kennt der Browser die Sesssion-ID nach einem Browserneustart nicht mehr. Alte Sessions bleiben noch einige Zeit auf dem Server selbst erhalten, bis der 'Garbage Collector' alte Sessions (d.h. Sessions, auf die Seit x Sekunden (Standardwert: 1440) nicht mehr zugegriffen wurde) automatisch entfernt.
Viele Grüße,
Christian