Sven Rautenberg: Session-Konfigurationsvariablen

Beitrag lesen

Moin!

So etwas kannst du an den angesprochenen Einstellungen gar nicht festmachen.
Die Session selber läuft nicht unbedingt zum Zeitpunkt X ab.

ach so .. ok, dann wird mir einiges klarer, das heisst wenn ich ein Timeout erzwingen will, muss ich mir sowas wie einen eigenen Zeitstempel setzten, und dann bei jedem Sessionaufruf abfragen, wie lange dieser schon her ist

Richtig!

PHP löscht, wenn die Session nach Ansicht von PHP ausreichend "alt" ist, die gespeicherten Sessiondaten in der Datei. Die Prüfung, welche der Dateien zu alt ist, geschieht mit dem Wahrscheinlichkeitsfaktor bei jeden Skriptaufruf (oder - da bin ich jetzt nicht 100% sicher - auch nur bei jedem Aufruf von session_start() ).

Das bedeutet: Du auf deinem Testsystem mußt grob geschätzt mindestens 100 Skriptaufrufe machen, bevor eine zu alte Session mit einigermaßen hoher Wahrscheinlichkeit gelöscht wird. Wenn du der einzige Benutzer bist, kann das schon mal dauern.

Deshalb mußt du einen eigenen Mechanismus einbauen, der den Zeitablauf der Session absolut sicher im Griff hat und bei Zeitüberschreitung garantiert faßt.

Hab ich also richtig verstanden, dass ich durch das Auslesen der Session-Konfiguration maximal sowas wie eine "Frühest-Mögliches-Timeout" erfahren kann?

Richtig. Im Prinzip sollte dich die Einstellung der PHP-Sessions gar nicht wirklich interessieren. Du müßtest sie dann ändern, wenn PHP selbst die Sessiondaten zu früh löscht. Aber Standardwert für die Mindestlebensdauer der Sessiondatei ist IIRC eine Stunde - kombiniert mit der Wahrscheinlichkeit kann eine Datei aber auch wesentlich länger überleben.

- Sven Rautenberg

--
My sssignature, my preciousssss!