Tom: Wie feststellen, ob Session abgelaufen ist?

Beitrag lesen

Hello,

bisher starte ich jedes Script mit einem session_start() und lese dann die von mir gefüllten Felder aus.
Wenn der Benutzer die Seite neu aufgerufen hat, sind die Felder leer, aber wenn die Sitzung abgelaufen ist, sind die Felder auch leer.

Vielleicht solltest Du dir zuerst mal klar machen, dass "die Seite" immer neu aufgerufen wird. Jeder Request fängt von vorne an. Das einzige was bleibt, sind (hier) die Session-ID und die zugehörige Session-Datei, aud der dann das Array $_SESSION erstellt wird.

Die Laufzeit einer Session solltest Du nicht einfach von der Existenz der Session-Datei abhängig machen. Diese stellt zwar im System von PHPs Sessionverwaltung die Grundlage dar, sollte aber nicht ausschließlich für die Gültigkeit der Session verantwortlich sein.

Eine Session-Datei wird vom System irgendwann "weggeräumt". Während das Script läuft, ist dies üblicherweise nicht möglich, egal, wie lange das dauert. Die Session-Datei wird nämlich auch aus diesem Grund solange gesperrt. Der GC (Garbage Controller) nimmt Rücksicht darauf.

Welche Art von GC aber verwendet wird, hängt von der Distribution ab. Manche Systeme verwenden dafür einen CronJob, der die INI-Daten zur Session berücksichtigt. Der ist dann zeitlich relativ exact. Andere System benutzen nur die einfache in PHP vorhandene Möglichkeit. Diese ist aber von sovielen Faktoren abhängig (unter anderem den aktuellen Zugriffszahlen per PHP), dass das "Wegräumen" der Dateien manchmal auch erst sehr verspätet stattfindet.

Wenn Du also nur das Vorhandensein der Datei als Merkmal für die Existenz einer gültigen Session heranziehst, dann ist das eben sehr ungenau.

Es empfiehlt sich daher, z.B. zusätzlich noch eine Datenbank für das Logging der Benutzerzugriffe einzusetzen und daraus die Gültigkeit der Session abzuleiten. Die maximale Gültigkeitdauer (aus der Datenbank) muss dabei dann kleiner sein, als die minimale Dateiexistenz der Session-Datei (session.gc_maxlifetime).

Liebe Grüße aus dem schönen Oberharz

Tom vom Berg

--
 ☻_
/▌
/ \ Nur selber lernen macht schlau
http://bergpost.annerschbarrich.de