Hey!
Ich habe auf meiner Seite ein Login-System, dass auf Sessions basiert.
Es gibt eine zentrale index.php in die alle anderen Seiten includiert werden, deshalb steht am Anfang dieser Datei session_start, sodass es auf jeden aufgerufenen Seite am Anfang steht.
Damit die User sich nicht nach jedem Schließes des Browser und / oder nach längerer Inaktivität neu einloggen müssen, setze ich die Lifetime der Session und die des Cookies (falls der User Cookies aktiviert hat) auf ein Jahr.
Nun ist es aber so, dass sich ja nicht jeder Nutzer, der die Seite besucht, registriert und einloggt. Die Session wird aber auf jeden Fall gestartet.
Nun habe ich mal in meinen tmp Ordner reingeschaut und darin waren Unmengen von Session-Dateien, von denen fast alle leer waren. Da ich aber die Lifetime auf ein Jahr gesetzt habe, räumt die garbage collection natürlich nicht auf.
Jetzt steh ich vor dem Problem, dass ich die Lifetime einer Session nur dann auf ein Jahr setzen will, wenn sich der User auch tatsächlich einloggt.
Da session_start auf jeden Fall am Anfang jeden Scriptes aufgerufen ist, wurde die Session ja bereits gestartet, wenn der User auch nur die Seite aufruft.
Meine Frage ist nun, ob ich das Problem irgendwie umgehen kann, also die Lifetime der Session nur dann auf ein Jahr setzen kann, wenn sich der User auch wirklich einloggt.
Ich habe auf meiner Seite ein Login-System, dass auf Sessions basiert.
Es gibt eine zentrale index.php in die alle anderen Seiten includiert werden, deshalb steht am Anfang dieser Datei session_start, sodass es auf jeden aufgerufenen Seite am Anfang steht.
Damit die User sich nicht nach jedem Schließes des Browser und / oder nach längerer Inaktivität neu einloggen müssen, setze ich die Lifetime der Session und die des Cookies (falls der User Cookies aktiviert hat) auf ein Jahr.
PHP-Code:
ini_set('session.cookie_lifetime', 3600*24*365);
ini_set('session.gc_maxlifetime', 3600*24*365);
Nun habe ich mal in meinen tmp Ordner reingeschaut und darin waren Unmengen von Session-Dateien, von denen fast alle leer waren. Da ich aber die Lifetime auf ein Jahr gesetzt habe, räumt die garbage collection natürlich nicht auf.
Jetzt steh ich vor dem Problem, dass ich die Lifetime einer Session nur dann auf ein Jahr setzen will, wenn sich der User auch tatsächlich einloggt.
Da session_start auf jeden Fall am Anfang jeden Scriptes aufgerufen ist, wurde die Session ja bereits gestartet, wenn der User auch nur die Seite aufruft.
Meine Frage ist nun, ob ich das Problem irgendwie umgehen kann, also die Lifetime der Session nur dann auf ein Jahr setzen kann, wenn sich der User auch wirklich einloggt.
Kommentar