session_destroy

funkcja

Niszczy wszystkie dane powiązane z bieżącą sesją po stronie serwera. Wywoływana przy wylogowaniu, po wcześniejszym wyczyszczeniu tablicy $_SESSION.

session_destroy(): bool

session_destroy usuwa plik (lub rekord) sesji po stronie serwera — żadne żądanie z tym samym PHPSESSID nie odzyska danych. Nie czyści jednak tablicy $_SESSION w pamięci bieżącego skryptu ani ciasteczka w przeglądarce. Dlatego bezpieczne wylogowanie zawsze składa się z trzech kroków: wyczyszczenie tablicy, usunięcie ciasteczka, zniszczenie sesji. Zwraca true w przypadku sukcesu.

<?php
declare(strict_types=1);

session_start();

// Krok 1: wyczyść tablicę $_SESSION w pamięci
$_SESSION = [];

// Krok 2 (opcjonalnie): usuń ciasteczko PHPSESSID z przeglądarki
if (isset($_COOKIE[session_name()])) {
    $params = session_get_cookie_params();
    setcookie(session_name(), '', time() - 3600,
        $params['path'], $params['domain'],
        $params['secure'], $params['httponly']);
}

// Krok 3: zniszcz sesję po stronie serwera
session_destroy();
// wynik: dane sesji usunięte — przeglądarka straci dostęp po przekierowaniu
📘 Naucz się w lekcji →