Кто знает как правильно удалять cookies через php? пробовал setcookies('order', '', time() - 30); - не работает пробовал $_COOKIE['order'] = ""; - работает только на той странице где написана это строка, перехожу на другую страницу, cookies остается. Помогите как правильно удалить cookies?
unset ($_COOKIE ['order']) это работает только на той странице где это написать на других страницах все остается по прежнему, cookies не удаляется
Этим нельзя куку удалить из браузера. Этим можно удалить куку только из массива $_COOKIE, который существует только в конкретном сценарии. Чтобы удалить из браузера, нужно этому браузеру отправить соответствующий http-заголовок. А это делается через setcookie().
Дело в том, что перед тем как отдать страницу, сервак отдает клиенту заголовки, в том числе - кукиши. Если ты делаешь unset, то браузер не получает удаленый кукиш. В общем, у меня это работало. Объяснение может и кривое.
Не обязательно каждый раз посылать куки. Достаточно послать один раз и броузер их будет всегда посылать. unset не удаляет куки. Удалить куки PHP: <? setcookie('order',''); ?> Второй параметр нельзя опускать и он должен быть пустым.
pr0n1x Ты пишешь setcookies, а надо setcookie. И тогда setcookie('order', '', time() - 30); сработает!
чтоб на верника удалил пиши так setcookie('order', '', time()-3600); сработает time()-3600 - пробелов не надо А вообще мне посоветовали вот так <? PHP: if(empty($_COOKIE['cook'])) { setcookie("cook","cooka true",time()+60*60*24,"/"); header("Refresh:2"); die('Cooka set'); }else{ $out=$_COOKIE['cook']; if(rand(0,1)){ header("Refresh:3"); setcookie("cook",""); $out.="<br>Cooka **ka"; } print $out; } ?> Дело в том что куку хранятся на стороне клиента (у него на компе) - а сценарий удаляется на стороне сервера, и просто удаляя куки ты увидишь лишь результат выполнения кода - а не фактическое удаление файлов куки. поэтому и требуется header("Refresh:3"); - обновление страницы
Если область видимости cookies была задана вручную, то при удалении необходимо указать ее вновь. Например, если мы задали cookie для всего сайта: setcookies('order', 'DESC', time() + 3600, '/'); // Область видимости на всем сайте то и удалять мы ее должны для всего сайта setcookies('order', '', time() - 3600, '/');
Провозился кошмар. Беда была в том, что было указано так setcookie("my_cookie","0",time()-1, '/'); а надо было так setcookie("my_cookie","0",time()-1, "/"); Одинарные и двойные кавычки мешать нельзя(
Кто бы мог подумать, что столкнусь с такой проблемой - на одной (!) странице сайта перестали удаляться куки. На других все удалялось нормально. Так не работало (задавались куки аналогично - без пути): PHP: setcookie($name, '', -1); Так заработало (в установке куков также добавил путь): PHP: setcookie($name, '', -1, '/'); Может быть кому-то пригодится.