Funkcja setcookie() w PHP

Słownik kwalifikacji INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych

setcookie() to funkcja PHP służąca do tworzenia, modyfikowania i usuwania ciasteczek po stronie przeglądarki użytkownika. W pytaniach egzaminacyjnych poprawną odpowiedzią na pytanie o funkcję tworzącą cookie w PHP jest właśnie setcookie().

Podstawowa składnia

setcookie(nazwa, wartosc, czas_wygasniecia, sciezka, domena, secure, httponly);

Najczęściej używa się pierwszych trzech parametrów:

setcookie('login', 'jan', time() + 3600);

Ten kod tworzy ciasteczko o nazwie login, wartości jan, ważne przez 3600 sekund, czyli 1 godzinę.

Ważna zasada

Funkcja setcookie() musi zostać wywołana przed wysłaniem jakiejkolwiek treści HTML do przeglądarki. Nie powinno być wcześniej echo, kodu HTML ani przypadkowych spacji poza znacznikiem <?php.

Błędnie:

echo 'Witaj';
setcookie('user', 'admin');

Poprawnie:

setcookie('user', 'admin', time() + 3600);
echo 'Witaj';

Odczyt ciasteczka

Po utworzeniu cookie można odczytać przy kolejnym żądaniu strony za pomocą tablicy superglobalnej $_COOKIE:

if (isset($_COOKIE['user'])) {
    echo $_COOKIE['user'];
}

Usuwanie ciasteczka

Aby usunąć cookie, ustawia się czas wygaśnięcia w przeszłości:

setcookie('user', '', time() - 3600);

Do zapamiętania na egzamin

  • setcookie() tworzy ciasteczka w PHP.
  • $_COOKIE służy do ich odczytu.
  • setcookie() musi być użyte przed wysłaniem treści strony.
  • Nie istnieją standardowe funkcje PHP createcookie(), echocokie() ani addcokie().