pagerank0
Goto Top

Problem mit session gc maxlifetime

Hallo miteinander, nach langem Suchen und Probieren versuche ich es hier einmal.

Ich habe ein Script, dass den Inhalt einer Session mittels "session.gc_maxlifetime" nach einer bestimmten Zeit löscht, wenn zwischenzeitlich kein neuer Seitenaufruf stattfindet. Der Code sieht dabei so aus:
 
include("session_lifetime.php");  

$Seperator = (strstr(strtoupper(substr(PHP_OS, 0, 3)), "WIN")) ? "\\" : "/";  
$DirectoryPath = dirname(__FILE__) . "{$Seperator}SessionData";  
is_dir($DirectoryPath) or mkdir($DirectoryPath, 0777);

if (ini_get("session.use_trans_sid") == true) {  
    ini_set("url_rewriter.tags", "");  
    ini_set("session.use_trans_sid", false);  
}

ini_set("session.gc_maxlifetime", $Lifetime);  
ini_set("session.gc_divisor", "1");  
ini_set("session.gc_probability", "1");  
ini_set("session.cookie_lifetime", "0");  
ini_set("session.save_path", $DirectoryPath);  

session_start();
wobei in der "session_lifetime.php" die Zeit in Sekunden festgelegt wird. Das Script läuft auf einem Debian Server mit php 4.4.9 ohne Probleme.

Nun habe ich selbiges Script auf einem Windows 2008 Server mit php 5.3.1 ausprobiert und es wird auch ein Ordner "SessionData" angelegt, in dem die Session-Variablen gespeichert werden, aber nach Ablauf der festgelegten Zeit (und auch Stunden später) wird der Inhalt anders als auf dem Linux-System nicht als Müll betrachtet und somit auch nicht gelöscht.

Auf meiner bisherigen Suche bin ich im Zusammenhang mit session.gc_maxlifetime bislang nur auf Probleme mit dem Dateisystem FAT gestoßen bzw. das Nichtfunktionieren von atime, aber seit php 4.2.3 wird ja mtime verwendet, womit es -so wie ich es verstanden habe- zumindest bei NTFS keine Probleme mehr geben sollte.

Kann mir jemand von Euch einen Tipp geben, woran es liegen könnte, dass session.gc_maxlifetime auf dem Windows 2008 Server ignoriert zu werden scheint?
Vielen Dank schonmal!

Gruß
pagerank0

Content-Key: 135378

Url: https://administrator.de/contentid/135378

Printed on: April 19, 2024 at 20:04 o'clock