Session Löschen
Melvin Cowznofski
- php
Hallo,
ich habe eine Frage zu Beispiel #1 auf der Seite "session_destroy" im PHP Manual.
Es geht dabei um folgenten Bereich aus dem Beispiel:
// Falls die Session gelöscht werden soll, löschen Sie auch das
// Session-Cookie.
// Achtung: Damit wird die Session gelöscht, nicht nur die Session-Daten!
if (ini_get("session.use_cookies")) {
$params = session_get_cookie_params();
setcookie(session_name(), '', time() - 42000, $params["path"],
$params["domain"], $params["secure"], $params["httponly"]
);
}
Wieso reicht da nicht einfach ein setcookie(session_name(), '', time() - 42000)
, um den Session-Cookie zu löschen? Ich verstehe nicht, wozu das vorhergehende $params = session_get_cookie_params();
und der Teil mit dem $params["path"], $params["domain"], $params["secure"], $params["httponly"]
gut sein soll. Warum braucht man das?
Kann mir bitte wer erklären, wieso ein einfaches setcookie(session_name(), '', time() - 42000)
nicht reicht und was hier genau passiert? Ich stehe grade irgendwie auf der Leitung. =/
Danke im Voraus für jede Hilfe!
Mit lieben Grüßen
Melvin Cowznofski
Es geht dabei um folgenten Bereich aus dem Beispiel:
Super, heute glänze ich ja nicht nur mit Unwissenheit, sondern auch mit perfekter Ortographie. Das war ein Tippfehler bitte, und keine Absicht! :)
Moin,
Super, heute glänze ich ja nicht nur mit Unwissenheit, sondern auch mit perfekter Ortographie. Das war ein Tippfehler bitte, und keine Absicht! :)
Orthographie ;)
↑
(SCNR)
Grüße Marco
Hallo Marco,
danke Dir, sowas hab' ich heute noch gebraucht. =/ *g*
Mit lieben Grüßen
Melvin Cowznofski
Hallo,
Ein Cookie kann für einen bestimmten Pfad, eine bestimmte (Sub-)Domain sowie mit den Flags secure und httponly gesetzt werden. Wenn der Pfad nicht gesetzt ist, wird »/« angenommen. Wenn die Domain nicht gesetzt ist, wird die aktuelle Domain angenommen.
Wenn du diesen Cookie wieder löscht, musst du dieselben Parameter angeben, damit genau dieser Cookie gelöscht wird. Wenn du sie weglässt, wird der Cookie nicht gefunden.
Wenn du die Parameter beim Setzen nicht angegeben hast, musst du sie allerdings auch nicht beim Löschen setzen, sofern es letztlich dieselben sind (Pfad und Domain ergeben sich, die Flags sind standardmäßig nicht gesetzt). Das Beispiel im PHP-Manual ist allgemein gehalten, da viele Leute es Kopieren und Einfügen.
Mathias
Hallo Mathias,
vielen Dank für die Erklärung!
Mit lieben Grüßen
Melvin Cowznofski