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, '/');