Christian Seiler: Gültigkeitsdauer bei Sessions festlegen?!

Beitrag lesen

Hallo Hendrik,

Wie kann man bei einer Session die Gültigkeitsdauer festlegen?

Da gibt's zwei Einstellungen:

  1. Wann der Garbage Collektor von PHP die Session als ungültig betrachtet, d.h. ab wie viel Sekunden seit dem letzten Zugriff eine Session komplett gelöscht werden soll. Danach kann jemand zwar noch die gleiche Session-ID verwenden, allerdings wird dann eine neue Session gestartet, da die alte Session weg ist. Die Einstellung heißt session.gc_maxlifetime und Du kannst sie mittels ini_set('session.gc_maxlifetime', $AnzahlSekunden); setzen.

  2. Wie lange der Session-Cookie gültig ist. Die Einstellung ist unabhängig von der obigen, da Session-IDs ja nicht ausschließlich über Cookies übertragen werden können, und die Angabe der Gültigkeitsdauer des Cookies sowieso nur eine Empfehlung für den Browser ist, der Browser sich aber nicht unbedingt daran zu halten braucht. Die Einstellung kannst Du mittels session_set_cookie_params() ändern. Eine Gültigkeitsdauer von 0 heißt, der Cookie bleibt bis zum Ende der Browsersitzung gültig, ansonsten ist dort die Anzahl der Sekunden einzutragen, die der Cookie gültig bleiben soll. Mit der Funktion können ferner noch einige andere Cookie-Einstellungen modifiziert werden, siehe dazu die Funktion setcookie() für eine Erklärung.

Wichtig ist: Alle Einstellungen müssen *VOR* session_start() vorgenommen werden, ansonsten funktioniert das ganze nicht oder nicht richtig.

Viele Grüße,
Christian

--
"I have always wished for my computer to be as easy to use as my telephone; my wish has come true because I can no longer figure out how to use my telephone." - Bjarne Stroustrup