Во всех предыдущих ответах игнорировалось, что setcookie
мог использоваться с явным доменом. Кроме того, файл cookie мог быть установлен на более высоком поддомене, например если вы входите в домен foo.bar.tar.com
, возможно, файл cookie установлен на tar.com
. Поэтому вы хотите удалить куки для всех доменов, которые могли удалить куки:
$host = explode('.', $_SERVER['HTTP_HOST']);
while ($host) {
$domain = '.' . implode('.', $host);
foreach ($_COOKIE as $name => $value) {
setcookie($name, '', 1, '/', $domain);
}
array_shift($host);
}