Session beenden
guelcki
- php
Hallo allerseits!
Habe mir gerade ein bißchen das Archiv durchgelesen, und habe eine kleine Frage.
In einem Thread ging es um das beenden von Sessions, und da wurde gesagt, man müsste zusätzlich zu
session_destroy();
auch noch den Befehl
setcookie("PHPSESSID");
benutzen. Wie ich das rausgelesen habe, ändert dieser den Cookie auf dem Clientrechner. Ich finde diesesn Befehl aber nicht in SelfPHP.
Und was bewirkt das PFPSESSID?
Muss man wirklich noch diesen zweiten Befehl nutzen, oder langt session_destroy(), wie ich es bisher immer praktiziert habe?
Vielen Dank
guelcki
Hallo guelcki,
session_destroy();
auch noch den Befehl
setcookie("PHPSESSID");
benutzen. Wie ich das rausgelesen habe, ändert dieser den Cookie auf dem Clientrechner. Ich finde diesesn Befehl aber nicht in SelfPHP.
<zitat src="Programming PHP" author="Rasmus Lerdorf & Kevin Tatroe" translation="frei">
Um eine Session zu beenden, rufe
session_destroy()
auf. Dies entfernt den 'data store' (ist mir keine angemessene Übersetzung eingefallen) der laufenden Session, aber es entfernt nicht das Cookie aus dem Browser-Cache. Das bedeutet, dass bei weiteren Besuchen auf den Seiten mit Sessions der Benutzer die gleiche Session ID haben wird, die sie vor session_destroy() besaß, aber keine der vorherigen Daten.
</zitat>
PS: Rasmus Lerdorf ist der Schöpfer von PHP.
Gruss,
Vinzenz
Hallo,
setcookie() ist der Befehl, um auf dem Client einen Cookie zu setzen. Das macht die Funktion session_start() automatisch. Als Namen für den Cookie nimmt sie den in der php.ini vorgegebenen (=PHP SESS ID natürlich ohne die Leerzeichen, habe ich nur zum besser Lesen können eingefügt) oder denjeneigen, den Du vorher mit session_name("ANDERER_NAME") für das laufende Script festgelegt hast.
Wenn man den Cookie auf dem Client nicht löscht, dann wird beim nächsten session_start() eine Session mit der alten Nummer neu gestartet. Durch session_destroy() hast Du dann zwar die alten Sessiondaten gelöscht, aber wenn es noch Einträge in Datenbanken usw. unter der alten Sessionnummer geben sollte, könnte das zu "Verwicklungen" führen.
Liebe Grüße aus http://www.braunschweig.de
Tom
Hallo!
In einem Thread ging es um das beenden von Sessions, und da wurde gesagt, man müsste zusätzlich zu
session_destroy();
auch noch den Befehl
setcookie("PHPSESSID");
benutzen. Wie ich das rausgelesen habe, ändert dieser den Cookie auf dem Clientrechner. Ich finde diesesn Befehl aber nicht in SelfPHP.
Dann bneutze am besten(zumindest zusätzlich) das offizielle PHP-Manual:http://www.php3.de/manual/de/
Da findest Du unter den "HTTP-Funktionen" (oder über die Suchfunktion):
http://www.php3.de/manual/de/function.setcookie.php
Und was bewirkt das PFPSESSID?
Lies Dir mal im Manual das Kapitel zu Sessions(http://www.php3.de/manual/de/ref.session.php) durch, da findest Du unter anderem: http://www.php3.de/manual/de/ref.session.php#ini.session.name
Muss man wirklich noch diesen zweiten Befehl nutzen, oder langt session_destroy(), wie ich es bisher immer praktiziert habe?
IMHO reicht das normalerweise. Wenn Du mit sensiblen Daten arbeitest solltest Du Dir aber Gedanken über Deine Implementierung des Session-Mechanismus machen, mehr dazu findest Du im Archiv.
Grüße
Andreas