phpbar.de logo

Mailinglisten-Archive

[php] Sessionmüll entsorgen - session.gc_maxlifetime

[php] Sessionmüll entsorgen - session.gc_maxlifetime

Peter Bieling network at media-palette.de
Die Aug 30 16:22:32 CEST 2005


Hallo,

ich habe eine Verständnisfrage zum Manual:

<zitat>
session.gc_maxlifetime spezifiziert die Anzahl der Sekunden, nach denen 
Daten als 'garbage' ('Müll') betrachtet und entsorgt werden.

Anmerkung: Falls Sie die standardmäßige dateibasierte Session-Prozedur 
verwenden, muss Ihr Dateisystem die Zugriffszeiten (atime) verfolgen. 
Windows FAT tut dies nicht. Sie müssen sich daher einen anderen Weg 
einfallen lassen, um die 'Müllentsorgung' Ihrer Session zu erledigen, 
wenn Sie an ein FAT-Dateisystem gebunden sind oder an irgendein anderes 
Dateisystem, das keine atime-Kontrolle bietet. Seit PHP 4.2.3 wird mtime 
(modified date) anstatt atime verwendet. Sie werden also keine Problem 
mit Dateisystemen haben, bei denen atime nicht zur Verfügung steht. </zitat>

Das verstehe ich so, dass Versionen > 4.2.3 die Sessiondateien 
standardmäßig entsorgen. Tatsächlich finde ich aber im bei mir per 
php.ini gesetzten Sessionverzeichnis F:\PHP\sessiondata monatealte 
Dateien, obwohl session.gc_maxlifetime 1440 eingestellt ist. Woran 
könnte das liegen?

Zusatz-Frage (alle Umgebungen):
In meiner Sessionhandling-Klasse verwende ich folgenden Code:
        if (defined('SESSPATH')) {
            ini_set('session.save_path', SESSPATH);
        }
        //Sessionnamen setzen, falls definiert:
        if (defined('SESSNAME')) {
             session_name(SESSNAME);
        }
Kann ich davon ausgehen, dass PHP in der Standardeinstellung auch alte 
Sessiondateien entsorgt, die in dem vom Skript aus definierten 
Verzeichnis liegen? Oder muss ich die alten Dateien dann selbst löschen?

Viele Grüße

Peter




php::bar PHP Wiki   -   Listenarchive