Rolf B: Session kann nicht gestartet werden

Beitrag lesen

Hallo Jochen,

die Session-Inhalte in einer Datei abzulegen ist das Default-Verhalten von PHP. Die Funktion session_start prüft, ob ein Session-Cookie vorliegt. Wenn ja, öffnet sie die existierende Session-Datei und liest die gespeicherten Werte ein.

Das Speichern der Session-Daten in der Session-Datei erfolgt durch den Aufruf von session_write_close(), etwas, was PHP nach Ende deines Scripts normalerweise automatisch tut; du musst Dich nicht drum kümmern.

Allerdings - wenn es beim Schreiben der Sessiondatei Probleme gibt, bekommst Du das nicht unbedingt mit. Dein Script ist zu Ende und das Senden an den Client ist abgeschlossen (zumindest ist das so meine Erfahrung gewesen, als ich mal einen eigenen Session-Handler bauen wollte und die Bugs darin gejagt habe). D.h. es könnte sein, dass PHP die Session-Datei nicht schreiben konnte. Beim nächsten Request will es sie lesen, findet sie nicht und gibt die Warnung aus.

Ein typisches Problem an dieser Stelle ist, dass PHP auf den Pfad nicht zugreifen kann, in dem es die Session-Dateien ablegen will. In dem Fall musst Du entweder passend Rechte vergeben, oder den save_path der Sessions ändern (entweder so oder so).

Um Probleme beim Schreiben der Session zu finden, kann es auch helfen, nach dem letzten Schreibzugriff auf $_SESSION manuell session_write_close() aufzurufen. Wenn DANN was schief geht, findet man eine Fehlerausgabe im Output.

Rolf

--
sumpsi - posui - clusi