Tach!
ini_set ('session.save_path', $s_pfad); ini_set('session.gc_maxlifetime',3800); session_start();
Der Pfad für die Session ist über eine zuvor ebenfalls eingebunden Datei bekannt.
Üblicherweise läuft der Garbage Collector beim Aufruf von session_start() los und arbeitet dann mit einer gewissen Wahrscheinlichkeit (also nicht bei jedem Aufruf) alle Session-Dateien im session.save_path ab. Wer die Dateien angelegt hat, ist nicht von Belang, und das ist immer ein Problem, wenn der session.save_path von mehreren Anwendungen mit unterschiedlichen Zeit-Konfigurationen gemeinsam genutzt wird. Eine zweite Ursache können Aufräumarbeiten des Betriebssystems sein. Manche Distributionen setzen extra noch eine eigene Aufräumroutine im Zuge der PHP-Installation auf. Wenn man abseits dieser Mechanismen seine Sessions ablegt, dürfte damit kein serverseitiges Problem auftreten. Das heißt, separates Verzeichnis außerhalb vom /tmp nehmen, und wenn regelmäßig session_start() stattfindet, sollte es auch kein Problem mit Leichen geben.
Die Ursache kann aber auch clientseitig zu finden sein, nämlich dann, wenn der Client die Session-ID verliert, beispielsweise durch Cookie-Löschen oder abgelaufener session.cookie_lifetime.
Insgesamt wird die Ursache wohl eher schwierig zu finden sein. Du könntest ein detailliertes Logging aufsetzen (selbst schreiben), und damit erstmal herausfinden, ob der Client ohne Session-ID kam oder ob die ID dieselbe wie vorher war, nur keine Session_Datei mehr existiert, oder ob vielleicht ihr Inhalt dem einer abgelaufenen Session entspricht, oder was auch immer.
Am Client kann man in die Entwicklertools und da in den Netzwerkverkehr schauen. Aber der Zug ist meist abgefahren, wenn man die erst hinterher öffnet und der Fehler nicht durch Wiederholung nachstellbar ist.
Und natürlich alle zeitgesteuerten Aktionen auf dem System kontrollieren. Vielleicht gibt es ein Cron-Log im /var/log. Da könnte vielleicht ein zeitlich passender Eintrag drin sein, wenn das die Ursache war.
dedlfix.