Rolf B: Umgang mit zerstörter Session

Beitrag lesen

Hallo,

ich spiele im Moment ein bisschen mit PHP herum und bin auf eine blöde Situation gestoßen.

Die letzte Aktion auf der Seite war heute nachmittag. Dann habe ich den Computer stehen gelassen, Wintersport geguckt, Essen gemacht, etc, und kam eben wieder.

Ein Klick auf einen Button der noch offenen Seite führte zu

session_start(): Failed to decode session object. Session has been destroyed in ....php on line ...

Autostart von Sessions ist aus, und session_start ist so ziemlich das erste, was ich mache. Der Rückgabewert von session_start war false. Okay - mehr als session_start() gibt's an dieser Stelle noch nicht und die Reaktion auf's false ist einfach nur ein exit. Frage ist nun, wie geh ich damit um und wie teste ich das.

In der Developer-PHP.INI hatte ich Defaultwerte, session.cookie_lifetime = 0 und session.gc_maxlifetime = 1440. Die gc_probability ist 1/1000. session.save_handler ist files, und session.save_path ist absolut und ohne Nesting-Level angegeben.

Irgendwo bei SO stehen Hinweise auf Themen mit CodeIgniter, den hab ich nicht. Nackiger files Sessionhandler. Und der save_path ist absolut angegeben.

Um nun den korrekten Umgang mit dieser Situation testen zu können, müsste ich aber erstmal ihre Entstehung verstehen und sie vor allem reproduzieren können. Und das schaffe ich nicht. Wenn ich gc_maxlifetime auf 10 setze und etwas warte, oder die Session-Datei lösche, oder ihr Dateidatum ein paar Stunden in die Vergangenheit schicke, startet PHP einfach kommentarlos eine neue Session und gibt aus session_start ein true zurück.

Wer hat ein paar Joule von der Energie des Verstehens für mich? Wie reproduziere ich diesen session-start Fehler?

Rolf

--
sumpsi - posui - obstruxi