setcookie

funkcja

Wysyła ciasteczko HTTP do przeglądarki. Musi być wywołana przed jakimkolwiek wyjściem. Ciasteczko jest dostępne w $_COOKIE od następnego żądania.

setcookie(string $name, string $value = "", int|array $expires_or_options = 0, string $path = "", string $domain = "", bool $secure = false, bool $httponly = false): bool

setcookie wysyła ciasteczko HTTP do przeglądarki. Musi być wywołana przed wysłaniem jakiegokolwiek wyjścia (przed echo i tagami HTML). Ciasteczko jest dostępne w $_COOKIE dopiero od następnego żądania — nie natychmiast po ustawieniu. Wartość ciasteczka to zawsze string. Flaga httponly chroni ciasteczko przed odczytem przez JavaScript.

<?php
declare(strict_types=1);

// Ustaw ciasteczko wygasające za 30 dni
setcookie(
    'imie',                   // nazwa
    'Jan',                    // wartość
    time() + 30 * 24 * 3600, // czas wygaśnięcia (timestamp)
    '/',                      // ścieżka — dostępne na całej stronie
    '',                       // domena — bieżąca
    false,                    // tylko HTTPS?
    true                      // httponly — niedostępne dla JavaScript
);

// Odczyt ciasteczka (dostępne od NASTĘPNEGO żądania):
$imie = $_COOKIE['imie'] ?? 'gość';
echo htmlspecialchars($imie, ENT_QUOTES, 'UTF-8');

// Usunięcie ciasteczka (ustaw czas wygaśnięcia w przeszłości):
setcookie('imie', '', time() - 3600, '/');
📘 Naucz się w lekcji →