Thomas Schmieder: Session beenden?

Beitrag lesen

Hallo,

Ich erklärs nur für Temp.Cookies=on, weil ich andere Sessions (mit Ausnahme selbstgebauter mit Auth) für blödsinn halte:

Die Session wird beendet, indem man ihr den Cookie klaut. Das kann man einfach durch

session_start();       // Session initialisieren mit Hilfe von $_COOKIE["PHPSESSID"]
session_destroy();     // Sessiondatei löschen
setcookie("PHPSESSID"); // Cookie auf dem Client vernichten

beide Sessionfunktionen greifen auf den Cookie mit dem Sessionnamen im Array $_COOKIE[] zu.

Wenn man den Cookie auf dem Client nicht ebenfalls vernichtet, ist der in $_COOKIE["PHPSESSID"] beim nächsten Request wieder da und es wird, mangels vorhandener Sessiondatei eine neue Sessiondatei unter der alten Nummer angelegt.

Daher beendet man eine Session keinesfalls alleine durch session_destroy().

Es reicht im Prinzip, einen leeren Cookie an den Client zu senden. Die letzten Sessiondaten bleiben dann aber solange erhalten, bis der Garbage Collector sie beseitigt hat.

Liebe Grüße aus http://www.braunschweig.de

Tom

--
Intelligenz ist die Fähigkeit, aus Fehlern Anderer zu lernen und Mut die, eigene zu machen.