session_destroy

(PHP 4, PHP 5, PHP 7, PHP 8)

session_destroyLöscht alle in einer Session registrierten Daten

Beschreibung

session_destroy(): bool

session_destroy() löscht alle in Verbindung mit der aktuellen Session stehenden Daten. Mit der Session zusammenhängende globale Variablen und das Session-Cookie werden nicht gelöscht. Um wieder Session-Variablen verwenden zu können, muss session_start() aufgerufen werden.

Hinweis: Normalerweise ist es nicht erforderlich session_destroy() aufzurufen. Statt die Session zu löchen, sollte das $_SESSION-Array bereinigt werden.

Um die Session komplett zu löschen, muss auch die Session-ID gelöscht werden. Wenn zum Verfolgen der Session ein Cookie benutzt wird (standardmäßige Einstellung), muss das Session-Cookie gelöscht werden. Dafür kann setcookie() verwendet werden.

Ist session.use_strict_mode aktiviert, dann ist es nicht nötig, veraltete Session-ID-Cookies zu löschen, da das Session-Modul dann kein Session-ID-Cookie akzeptiert, wenn keine zu dieser Session-ID gehörigen Daten vorhanden sind, so dass ein neues Session-ID-Cookie gesetzt würde. Das Aktivieren von session.use_strict_mode wird grundsätzlich empfohlen.

Warnung

Das sofortige Löschen der Session kann zu unerwünschten Ergebnissen führen. Wenn es gleichzeitige Anfragen gibt, können andere Verbindungen, z. B. Anfragen von JavaScript und/oder Anfragen von URL-Links, plötzlich Session-Daten verlieren.

Das aktuelle Session-Modul akzeptiert zwar keine leeres Session-ID-Cookie, aber das sofortige Löschen der Session kann aufgrund einer Client- (Browser-) seitigen Race-Condition zu einem leeren Session-ID-Cookie führen. Dies würde dazu führen, dass der Client unnötig viele Session-IDs erzeugt.

Um diese zu vermeiden, müssen Sie den Löschzeitstempel auf $_SESSION setzen und den Zugriff zu einem späteren Zeitpunkt verweigern. Oder stellen Sie sicher, dass Ihre Anwendung keine gleichzeitige Anfragen hat. Dies gilt auch für session_regenerate_id().

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Gibt bei Erfolg true zurück. Bei einem Fehler wird false zurückgegeben.

Beispiele

Beispiel #1 Löschen einer Session mit $_SESSION

<?php
// Initialisierung der Session.
// Wenn Sie session_name("irgendwas") verwenden, vergessen Sie es
// jetzt nicht!
session_start();

// Löschen aller Session-Variablen.
$_SESSION = array();

// 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"]
);
}

// Zum Schluß, löschen der Session.
session_destroy();
?>

Siehe auch

To Top