Session - maxlifetime
Bernard
- php
Hallo,
kann ich einer Session eine Lebenszeit mitgeben die unabhängig von der php.ini ist ?
Habe bei meinem Provider nämlich nicht auf diese zugreifen .
mfg
Bernard
Hallo,
kann ich einer Session eine Lebenszeit mitgeben die unabhängig von der php.ini ist ?
Habe bei meinem Provider nämlich nicht auf diese zugreifen .
ich habe es in einem fall so gemacht, dass ich beim session start einen timestamp nehme, zu diesem die gewünschte lebenszeit addiere und den entstandenen wert dann mit in die session nehme, bei jedem neuladen wird dann wieder ein timestamp genommen und mit dem wert in der session verglichen, ist der neue wert grösser wird die session beendet.
Aber wahrscheinlich gibt es da noch eine bessere lösung aber mir als php-noob viel nichts anderes ein und es funktioniert.
Gruss, Jan aus Dresden
Hallo,
bei PHP wird das Aufräumen alter Sessiondateien durch den GC (Garbage Controller) übernommen. Der wird immer getriggert, wenn man das Sessionmanagement (session_start() ...) benutzt, aber auch nicht jedes Mal, sondern nur mit einer eingestellten Wahrscheinlichkeit. Je höher die Last auf dem Server ist, desto kleiner sollte die Wahrscheinlichkeit eingestellt werden, das das Ding sonst nur noch am Rödeln ist.
Außerdem kann man eine MaxLifetime einstellen, die eigentlich MinLifetime heißen müsste! Denn vor Ablauf dieser Zeit wird die Datei nicht gelöscht. Das System funktioniert nur auf Betriebssystemen, die ein Touch für Dateien auch registrieren, also NICHT auf einfachen Windows-Plattformen.
Wenn man das Veruzeichnis, in dem die Sessions abgelegt werden, gegen auslesen schützt (nicht dei Dateien selber), dann kann der GC nicht mehr tätig werden. Er scannt also tatsächlich das Verzeichnis nach "abgelaufenen" Dateien um sie dann zu löschen. Das übrige Sessionmanagement funktioniert trotzdem noch.
Wenn Du an die php.ini nicht herankommst gibt es wohl keine Möglichkeit, die Lebensdauer von Sessiondateien zu verlängern. Verkürzen kannst Du sie jederzeit, denn wenn der GC im Sessionverzeichnis lesen darf, dann darfst Du das mit Hilfe des PHP-Runtime auch, ist ja der gleiche User.
Grüße
Chris (C)