В PHP нет встроенного механизма для удаления кук. Поэтому удаляют куки хитрым способом - устанавливая время 'смерти' куки на текущий момент:
<?php
setcookie('test', '', time());
?>
Удаление куки приведет к изменению $_COOKIE
только после перезагрузки страницы:
<?php
setcookie('test', '', time());
var_dump($_COOKIE['test']); // первый раз выведет значение куки
?>
Удалите какую-нибудь куку. Обновите страницу и убедитесь, что она удалилась.
Хитрый прием
Для того, чтобы при удалении куки сразу менялся
$_COOKIE
можно использовать уже известный
нам хитрый прием:
<?php
setcookie('test', '', time());
unset($_COOKIE['test']);
var_dump($_COOKIE['test']);
?>
Добавим условие, чтобы каждый раз не удалять уже удаленную куку:
<?php
if (isset($_COOKIE['test'])) {
setcookie('test', '', time());
unset($_COOKIE['test']);
}
var_dump($_COOKIE['test']); // удалена
?>
Удалите какую-нибудь куку с помощью хитрого приема. Убедитесь, что она будет удалена сразу.