Daniel: session.cookie_lifetime funktioniert nicht wie es soll

Beitrag lesen

Hi Sven,

Quintessenz: Du kannst dich schlicht nicht darauf verlassen, dass die Session von PHP von allein beendet wird, sondern solltest eine eigene Zeitrechnung aufmachen. Also bei jedem Sessionzugriff einen Zeitstempel auf die aktuelle Zeit (time()) setzen,, wenn die aktuelle Zeit nicht schon mehr als X Minuten später ist, als der aktuelle Zeitstempel in der Session.

Das ist eine gute Idee, ich mache einfach eine Funktion, die manuell die Loginzeit mit der aktuellen Zugriffszeit vergleicht, hätte ich eigentlich auch selber draufkommen sollen :)

Wenn du das nicht prüfst, reicht es ja aus, PHP einfach die Session-ID als Cookie oder in der URL zu senden, und die Session geht weiter. Denn die Session-Daten werden nicht sofort bei Ablauf der Session gelöscht, sondern nach einem Zufallsprinzip bei (einstellbar) 1 bis 100% aller Zugriffe. Es werden deine alten Session-Daten also noch verfügbar sein - und PHP macht einfach dort weiter, wo die "alte" Session (eigentlich ja nicht wirklich) aufgehört hat.

Du meinst die Sessiondaten werden nicht laut der gc_maxlifetime zerstört sondern zufällig? Welchen Sinn hat dann eigentlich diese Einstellung ?

Danke für die Antwort,
Grüsse, Daniel