Thomas Schmieder: Sessions-Problem

Beitrag lesen

Hallo Harald,

erstens solltest Du ab PHP 4.0.2 nicht mehr die session_register()-Funktion und Ihre Brüder benutzen, sondern die Daten direkt in das Array mit dem Namen $HTTP_SESSION_VARS["name"] oder ab PHP 4.2.3 (davor gabs noch ein paar kleinere[tm] Bugs) in $_SESSION["name"] schreiben.

Damit das Ganze dann auch sicher funktioniert, sollte register_globals in der php.ini auf off stehen.

Wenn Du eine Session mit session_register() startest, gilt die in aller Regel für alle Seiten der Domain. Das kann man umkonfigurieren, ist aber so erstmal der übliche Default.

Wenn Du möchtest, dass eine neue Session (mit temporären Cookies) gestartet wird, dann, musst Du entweder alle Fenster des Browsers schließen und einen neuen öffnen, oder den "Session-Cookie" per

setcookie("PHPSESSID");

zerstören.

Darüberhinaus kannst Du auch noch die Sessiondaten auf dem Server mit

session_start();
session_destroy();

zerstören, also die Sessiondatei im TMP-Verzeichnis löschen).

Das zerstören des Cookies muss aber ein zusätzlicher Request/Response sein.

Alternativ kannst Du auch einfach:

unset($_COOKIE["PHPSESSID"]);

schreiben. Wenn Du dann anschließend session_start() aufrufst, wird eine neue Session gestartet.

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.