Ciasteczko (cookie) jest przechowywane w przeglądarce, a serwer nie usuwa go "bezpośrednio" z dysku użytkownika. Serwer może jedynie zainstruować przeglądarkę, aby nadpisała lub usunęła wpis, wysyłając odpowiedni nagłówek Set-Cookie.
Dlatego poprawnym sposobem usunięcia cookie w PHP jest użycie funkcji setcookie() z:
- tą samą nazwą ciasteczka,
- dowolną (często pustą) wartością,
- czasem wygaśnięcia ustawionym w przeszłości.
Wariant setcookie("ciastko", "", time()-3600); spełnia te warunki: wylicza czas "sprzed teraz" (o 3600 sekund), więc przeglądarka uznaje, że cookie jest przeterminowane i usuwa je.
Pozostałe propozycje są błędne z typowych powodów:
- deletecookie("ciastko"); – w czystym PHP nie ma standardowej funkcji o takiej nazwie; może się kojarzyć z API bibliotek, ale nie jest to wbudowany mechanizm.
- setcookie("$ciastko", "", 0); – użycie "$ciastko" sugeruje zmienną w łańcuchu zamiast literalnej nazwy cookie, a parametr czasu 0 nie jest ogólną regułą "usuń" (zależnie od interpretacji może skutkować cookie sesyjnym, czyli usuwanym dopiero po zamknięciu przeglądarki).
- unsetcookie("$ciastko"); – taka funkcja również nie jest standardową funkcją PHP do obsługi cookies; myli się ją czasem z unset(), które usuwa zmienną w PHP, ale nie wysyła nagłówka do przeglądarki.
Wskazówka egzaminacyjna: jeśli pytanie dotyczy usuwania cookies w PHP, niemal zawsze chodzi o setcookie() z datą w przeszłości. W praktycznych projektach trzeba też pamiętać, że aby usunąć konkretne cookie, często należy podać te same parametry (np. path i domain) jak przy jego ustawianiu, inaczej przeglądarka może traktować je jako inne ciasteczko.