Ciasteczko (cookie) jest przechowywane po stronie przeglądarki, a PHP może jedynie zlecić jego utworzenie/zmianę/usunięcie przez wysłanie odpowiedniego nagłówka HTTP Set-Cookie. Z tego powodu w PHP nie istnieje osobna wbudowana funkcja "deletecookie()" do kasowania cookies.
Poprawny sposób polega na użyciu setcookie() z:
- nazwą ciasteczka jako napisem: "ciastko",
- pustą wartością: "",
- czasem wygaśnięcia ustawionym w przeszłości, np. time()-3600.
Wywołanie setcookie("ciastko", "", time()-3600); powoduje, że przeglądarka uzna cookie za wygasłe i je usunie.
Pozostałe propozycje są błędne typowo z następujących powodów:
- deletecookie("ciastko"); – taka funkcja nie jest standardową funkcją PHP do obsługi cookies, więc kod nie spełnia zadania.
- setcookie("$ciastko", "", 0); – użycie $ciastko sugeruje zmienną, a nie stałą nazwę "ciastko"; dodatkowo parametr wygaśnięcia równy 0 oznacza cookie sesyjne (do zamknięcia przeglądarki), a nie wymuszone usunięcie przez datę w przeszłości.
- unsetcookie("$ciastko"); – to również nie jest standardowa funkcja PHP do zarządzania nagłówkami cookies.
W praktyce pamiętaj, że operacje na ciasteczkach muszą zajść przed wysłaniem jakichkolwiek danych wyjściowych (w przeciwnym razie pojawia się problem typu "headers already sent"). Gdy cookie było ustawione z konkretną ścieżką lub domeną, przy usuwaniu zwykle trzeba podać te same parametry, aby przeglądarka skasowała właściwy wpis.