Geizkragen/logout.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();
?>