Session zeitlich begrenzen
Artur
- php
Hallo Forum!
wie kann man eine PHP Sitzung zeitlich begrenzen, so dass die Sessiondaten nach einer bestimmten Zeitspanne gelöscht werden?
Danke!
Hallo Forum!
wie kann man eine PHP Sitzung zeitlich begrenzen, so dass die Sessiondaten nach einer bestimmten Zeitspanne gelöscht werden?
Eine Session wird doch autoamtisch gelöscht nach einer bestimmten Zeit.
IMHO kann man die Zeit in der php.ini einstellen.
Den aktuellen Wert kannst Du in der phpinfo() anschauen unter:
--> session.gc_maxlifetime
cya
Claus
Hallo,
das Löschen der Sessiondatei alleine bedeutet ja nicht das Löschen der Session. Eine Session ist dann beendet, wenn der User sich abmeldet. Da das in HTTP nicht gewährleistet sit, kann man die letzte Änderung der Sessiondatei ggf. als Kriterium nehmen. Der Garbage Collector ist allerdings sehr unzuverlässig mit der Löschung, da er erstens über einen Wahrscheinlichkeitswert und zweitens über die Nutzug der Sessionverwaltung angestoßen wird. Außerdem funktioniert er nur, wenn der wwwrun Browserechte im Verzeichnis der Sessiondateien hat. Das ist aus Sicherheitsgründen nicht immer erwünscht.
Bei Auth (401) liefert php bisher überhaupt keine Session-Unterstützung, obwohl das bei konsequent sauberer Programmierweise (serialize und unserialise im Vergleich mit der automatischen Sessionspeicherung) ohne weiteres möglich wäre. Die PHP-Entwickler haben hier aber noch eine kleine Baustelle hinterlassen.
Die Überwacheung, ob eine Session noch als gültig anzusehen ist, sollte man daher in einer eigenen Tabelle vornehmen. Wenn der "LastClick" des Users zu lange her ist, könnte man ihne zur erneuten Authentifizierung auffordern. Beim Cookie-Verfahren ist das relativ einfach, bei Auth (401) muss man sich etwas intensiver mit REFERER und header("Location: ...) abmühen, damit es sicher funktioniert.
Viel Spaß
Tom