Ich habe in einem Projekt von mir ein Problem gehabt, ein Wert aus der Session, die ich in einer Datei deklariert hatte, in einer anderen Datei aus der Session wieder auszulesen. Die Session war leer. Das Beispiel:

In der Datei “login.php”:

$_SESSION['user'] = 'Herbert';

header(“Location: start.php”);

In der Datei “start.php”:

session_start();
print_r ($_SESSION);

Die Ausgabe war dann “Array()” (also ein leeres Array). Eine PHPSESSID bestand aber (SID wurde also angelegt). Woran lag das?

Dieser Artikel hat mir geholfen, der besagt, dass der Webuser keine Berechtigung hat in die “/var/sessions” zu schreiben (sollte man mit “chmod 777 /var/sessions” beheben oder mit seinem Provider absprechen). Desweiteren hat der Artikel mir gezeigt, dass man auch die SID per URL übertragen kann (wenn Cookie-basiertes Handling nicht zur Verfügung steht). Dazu muss SID dann als erstes nach dem “?” in der URL angegeben werden (Bsp.: “daten.php?sid=12&weitere=angaben….”).

Ansonsten kann man (wenn der Provider das zur Option stellt) noch in der php.ini folgende Angaben machen:

session.use_only_cookie = 0

session.use_trans_sid = 1

session.use_cookie = 1