64 lines
1.6 KiB
PHP
64 lines
1.6 KiB
PHP
<?php
|
|
/**
|
|
* @file logout.php
|
|
* @brief Beendet die Sitzung des Benutzers.
|
|
*
|
|
* @details Diese Datei setzt alle Session-Parameter zurück, löscht das Session-Cookie
|
|
* und leitet den Benutzer auf die Anmeldeseite um.
|
|
*/
|
|
|
|
/**
|
|
* @brief Bindet die Bootstrap-Datei ein, um Session-Start und Basiskonfigurationen zu gewährleisten.
|
|
*/
|
|
require_once __DIR__ . '/lib/bootstrap.php';
|
|
|
|
/**
|
|
* @brief Leert das komplette Session-Array.
|
|
* @details Setzt `$_SESSION` als leeres Array, um alle nutzerbezogenen Daten der Sitzung zu entfernen.
|
|
*/
|
|
$_SESSION = [];
|
|
|
|
/**
|
|
* @brief Prüft, ob Sessions über Cookies abgewickelt werden.
|
|
* @details Falls ja, wird das dazugehörige Session-Cookie aktiv im Client des Benutzers invalidiert.
|
|
*/
|
|
if (ini_get("session.use_cookies")) {
|
|
/**
|
|
* @var array $params Liest die aktuellen Parameter zum Verwalten der Cookies aus.
|
|
*/
|
|
$params = session_get_cookie_params();
|
|
|
|
/**
|
|
* @brief Setzt ein invalides und abgelaufenes Cookie, um das bestehende Cookie des Nutzers zu verwerfen.
|
|
*/
|
|
setcookie(
|
|
session_name(),
|
|
'',
|
|
time() - 42000,
|
|
$params["path"],
|
|
$params["domain"],
|
|
$params["secure"],
|
|
$params["httponly"]
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @brief Zerstört die serverseitige Sitzung final.
|
|
*/
|
|
session_destroy();
|
|
|
|
/* Optional: Remember-Me Cookie lschen (falls vorhanden)
|
|
setcookie("remember_token", "", time() - 3600, "/");
|
|
*/
|
|
|
|
/**
|
|
* @brief Weiterleitung auf die Login-Seite.
|
|
*/
|
|
header("Location: login.php");
|
|
|
|
/**
|
|
* @brief Stoppt das Skript nach erfolgtem Redirect.
|
|
*/
|
|
exit();
|
|
?>
|