Как удалить cookie в PHP? [дубликат]
Чтобы удалить cookie достаточно в качестве срока действия указать какое-либо время в прошлом.
Отслеживать
ответ дан 5 авг 2016 в 15:20
28.6k 19 19 золотых знаков 59 59 серебряных знаков 139 139 бронзовых знаков
Я пробовал Ваш вариант вот так — Setcookie(‘1k’, «» ,time()-1000); Это не помогло. Еще важно удалить её до загрузок любых заголовков. я в этом плохо разбираюсь , но у меня шаблон подгружается всё время не тот что нужен
5 авг 2016 в 15:36
@AndreiSukharev без кастлей не как. браузер делает запрос в ответ получает куки. можно через кастыль перезагрузить страницу дважды первый раз отправив запрос а второй раз загрузить уже с новыми кукисами.
Как очистить все куки?
Здравствуйте, специалисты! Помогите разобраться с, казалось бы, несложными вещами.
Собственно, проблема в чём: нужно очистить все куки, которые я получаю в массиве $_COOKIES.
Проблема усугубляется тем, что для удаления, насколько я понял интернет, нужно указывать те параметры, какие указывались при установке, а в $_COOKIES я из этих параметров вижу только имена и значения.
Надеюсь, вопрос понятен.
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:
Очистить куки после яндекс оплаты
После успешной оплаты яндекс запускает php файл. В нем я заношу в бд нужную информация. Но мне.
Как очистить все файлы с расширением .txt в папке за исключением некоторых
Здравствуйте. Подскажите пожалуйста, желательно с примером, как удалить всё содержимое с файлов с.
Curl, CURLOPT_COOKIEJAR и все-равно ругается, что куки отключены
Добрый день. Ситуация кратко: есть сайт, к нему нет нормального API (обещают, что в разработке, но.
Как очистить куки? VS 2015
Нужно чтобы при нажатии на кнопку программа очищала свои куки. А то она выводит "старую".
285 / 234 / 113
Регистрация: 08.06.2013
Сообщений: 725
Ну обычно пользуются unset(), который почему-то у многих не удаляет куку по неизвестным причинам, из-за этого еще переустанавливают куки с пустыми значениями, и с прошедшим временем жизни:
1 2 3 4
unset($_COOKIE['param1']); unset($_COOKIE['param2']); setcookie('param1','',time()-3600); setcookie('param2','',time()-3600);
Добавлено через 6 минут
Ну а если вы не знаете названия куки и нужно вообще все затереть, то вот:
foreach($_COOKIE as $key => $value) setcookie($key, '', time() - 3600, '/');
Регистрация: 11.03.2015
Сообщений: 94
1 2 3 4 5 6 7
function set_cookie($name,$value,$expire=1) { if ($expire0) setcookie($name, '', time()-25*3600, '/'); else { $path = explode('/',$_SERVER['REQUEST_URI']); setcookie($name, $value, ($expire==0)?0:(time()+3600*$expire), "/".$path[1]."/", $_SERVER['SERVER_NAME'], false, false); } }
1 2 3 4
foreach ($_COOKIE as $k=>$v) if($v!=='netbeans-xdebug') set_cookie($k,'',-1); redirect('index.php');
Не работает, хоть тресни!
285 / 234 / 113
Регистрация: 08.06.2013
Сообщений: 725
Ну не знаю, должно работать, у меня работает, может когда редирект на индекс.пхп идет, там опять заново устанавливаются эти куки?
Регистрация: 11.03.2015
Сообщений: 94
Сообщение от UchihaSV 
должно работать, у меня работает
Я рад, что у Вас работает. А у меня не хочет. специально для теста создал страничку http://phantomsoft.ru/cookies/.
Там 2 ссылки. Одна устанавливает куки, вторая должна удалить. Так же показываются все переменные и куки, отправленные на сайт, а также сам php-код.
Пожалуйста, не поленитесь, зайдите. Возможно, так Вам проще будет увидеть ошибку.
249 / 249 / 98
Регистрация: 26.07.2010
Сообщений: 1,685
1 2 3 4 5
function logoff() { foreach ($_COOKIE as $k=>$v) set_cookie($k,'',-1); redirect($_SERVER['PHP_SELF']); }
попробуйте убрать редирект и посмотреть, что получится
285 / 234 / 113
Регистрация: 08.06.2013
Сообщений: 725
Сообщение от PhantomSoft 
Не работает, хоть тресни!
А что вы подразумеваете, под не работает?
Попробуйте как выше человек сказал, вместо редиректа вывести значение переопределенной куки, она все еще будет иметь значение?
Регистрация: 11.03.2015
Сообщений: 94
Закомментировал редирект. Всё равно куки не очищаются.
Добавлено через 2 минуты
Сообщение от UchihaSV 
Попробуйте как выше человек сказал, вместо редиректа вывести значение переопределенной куки, она все еще будет иметь значение?
Все переменные (в т.ч. и куки) выводятся на оранжевом фоне. И кука присутствует, то бишь не удаляется по ссылке «clear».
285 / 234 / 113
Регистрация: 08.06.2013
Сообщений: 725
Не очищаются? То есть у куки значение пустое не ставится? А какое-то другое значение имеется?
Регистрация: 11.03.2015
Сообщений: 94
Ну Вы же видите: кука остаётся с тем же значением.
285 / 234 / 113
Регистрация: 08.06.2013
Сообщений: 725
Ну кука сама по себе может и не удалятся, и скрипт надо делать учитывая это и проверять все по установленному значению!
Добавлено через 39 секунд
Я не вижу отсюда ничего, с каким значением остается?
Регистрация: 11.03.2015
Сообщений: 94
Сообщение от UchihaSV 
Ну кука сама по себе может и не удалятся, и скрипт надо делать учитывая это и проверять все по установленному значению!
Ну как так «может не удалиться»? Спецификция гласит, что обязана умереть! Значит, наверно я её неправильно убиваю. Собственно, в этом как раз и прошу помочь разобраться.
Сообщение от UchihaSV 
Я не вижу отсюда ничего, с каким значением остается?
Сообщение от PhantomSoft 
специально для теста создал страничку http://phantomsoft.ru/cookies/.
Там устанавливается кука «test» со значением «test». И на оранжевом фоне видно, что она есть. А вот удалить не могу!
285 / 234 / 113
Регистрация: 08.06.2013
Сообщений: 725
А, unset($_COOKIE[‘param1’]); добавлял?
Регистрация: 11.03.2015
Сообщений: 94
А смысл? Страница перезагружается, куки отправляются на сервер, что получил — то и на экране.
Щас добавлю ради очистки совести, но это ничего не должно дать.
Добавлено через 7 минут
Добавил. Результат тот же
285 / 234 / 113
Регистрация: 08.06.2013
Сообщений: 725
Попробуй так:
1 2 3 4 5 6 7 8 9
if (isset($_SERVER['HTTP_COOKIE'])) { $cookies = explode(';', $_SERVER['HTTP_COOKIE']); foreach($cookies as $cookie) { $parts = explode('=', $cookie); $name = trim($parts[0]); setcookie($name, '', time()-1000); setcookie($name, '', time()-1000, '/'); } }
Регистрация: 11.03.2015
Сообщений: 94
Сделал. Но кука жива.
285 / 234 / 113
Регистрация: 08.06.2013
Сообщений: 725
А смотрика, я сначала, зашел на твой сайт с новосятми и т.д., оттуда получил куку f5cc829a852834601e08a44d0943e152 = ‘520h033ilrggpijkskf0bn2u41’
Потом зашел на страницу где якобы у тебя не удаляется кука, там отобразились 2 куки, и та кука с основного сайта удалилась, значит работает!
Отсюда следует что куки установленные через 3 параметра как делают все нормальные люди — удаляются нормально, но нет ты устанавливаешь куку через 7 параметров, вот и думай как потом ее удалять значит:
setcookie($name, $value, ($expire==0)?0:(time()+3600*$expire), "/$path[1]/", $_SERVER['SERVER_NAME'], false, false);
Регистрация: 11.03.2015
Сообщений: 94
Переписал так (обновите у себя страничку):
1 2 3 4 5 6 7 8 9
function set_cookie($name,$value,$expire=1) { $path = explode('/',$_SERVER['REQUEST_URI']); if ($expire0) { setcookie($name, '', time()-3600, "/$path[1]/", $_SERVER['SERVER_NAME'], false, false); setcookie($name, '', time()-3600, "/"); } else { setcookie($name, $value, ($expire==0)?0:(time()+3600*$expire), "/$path[1]/", $_SERVER['SERVER_NAME'], false, false); } }
Теперь удаляет также и куки, установленные сайтом, т.к. параметры совпадают. Но ведь все возможные куки таким способом не удалишь! Тут мы подходим опять к тому, что я писал в первом топике:
Проблема усугубляется тем, что для удаления, насколько я понял интернет, нужно указывать те параметры, какие указывались при установке, а в $_COOKIES я из этих параметров вижу только имена и значения.
Получается, надо перебирать все возможные комбинации параметров, доменов и путей. так, что ли?
А из js случайно нельзя увидеть параметры уже установленных кук?
Cookie в PHP. Как установить, изменить, удалить cookie

Cookie позволяют сохранять информацию на сайте, которую необходимо запомнить на определенное время и при последующей загрузки сайта, чтобы она выводилась автоматически.
Зачем вообще нужны cookie в PHP? На самом деле, их используют почти во всех движках, веб программах и проектах. Например, с их помощью можно хранить пароли, данные о пользователе, узнавать авторизован ли он, голосавал ли в опросе, с какого города зашел и т.д.
Разберемся с тем как установить cookie на сайте
Перед их установкой надо убедиться, что до вызова cookie нет никаких DOM элементов, т.е. шапка headers вашего сайта/страницы пуста. Если в процессе работы с куками у вас выйдет ошибка Cannot modify header information — headers already sent by — значит, до установки куков у вас выводится html содержимое, например, пробел, тег и т.п. Для проверки работоспособности куков создайте пустой php файл и впишите в него:
setcookie («cookie1», ‘Значение’);
echo $_COOKIE[«cookie1»];
?>
Запустите на своем сервере этот пример, после второго обновления страницы, у вас будет выводиться ‘Значение’. Теперь добавьте перед
Теперь о синтаксисе куков. Они задаются следующим образом:
setcookie (string name [, string value [, int expire [, string path [, string domain [, int secure]]]]])
Из него видно, что для задания кука обязателен только первый параметр name — имя кука. Рассмотрим остальные необязательные параметры.
- value — значение сookie.
- expires — время действия сookie. Если не установлено, то сookie удалится после закрытия пользователем браузера.
- path — директория, где может работать сookie. По умолчанию — без ограничений.
- domain — домен, где сookie будет работать, по умолчанию — текущий.
- secure — если нужно, чтобы сookie работал только по SSL соединению.
Примеры установки куков:
setcookie(«cookie2», ‘Значение’); //обычный кук
setcookie(«cookie3», ‘Значение’,time()+3600); // период действия: 1 час
setcookie(«cookie4», ‘Значение’,time()+3600*24*2); // период действия: 2 дня
Пример вывода кука:
echo $_COOKIE[«cookie2»]; //т.е. пишем имя кука и его значение сразу выведится
Пример проверки, существует ли кук
if(isset($_COOKIE[‘cookie2’]))
Пример условия кука
if($_COOKIE[‘cookie2’] == ‘Значение’)
Пример удаления кука
SetCookie(«cookie2″,»»); //для этого значение кука нужно обнулить
Теперь вы знаете, как работать с cookie. Используйте их разумно.
Как удалить cookie php
Для того, чтобы удалить cookie в браузере – надо знать где их искать!
У каждого браузера есть такая фишка – посмотреть код элемента или исследовать элемент, например на Яндекс браузере есть кнопка F12.
Для некоторых браузеров — эта кнопка тоже подходит!
Если она не срабатывает, то нажимаем ПКМ – и ищем строку исследовать код(например как на скрине)
Чтобы увеличить скрин – нажмите на него!
Нажмите, чтобы открыть в новом окне.

И далее вам остается выделить те куки(cookie), которые вы хотите удалить и нажать кнопку delite на компьютере.
Как удалить cookie php!?
Для того, чтобы удалить куки- естественно они(куки должны существовать!)
На самом деле удалить куки так же легко, как и установить!
Нам потребуется, для того, чтобы удалить cookie, вспомнить как мы их устанавливали.
У нас была такая запись:
SetCookie(«name_cookie», «value_cookie»,time()+(365*24*60*60), «/», $site, 0) ;
Далее будем использовать данную строку кода php для удаления cookie!
Нам нужен второй аргумента функции.
Заменяем значение cookie на кавычки без пробела.
Те.е вместо «value_cookie» — у нас должно получиться «»
Размещаем данный код, естественно, перед любым выводом чего либо на экран.
SetCookie(«name_cookie», «» ,time()+(365*24*60*60), «/», $site, 0) ;
Таким образом у вас удалятся куки через php
Как удалить cookie php практика живой пример
Мы в прошлый раз дописали в тему установка кук живой пример, как это работает! И естественно, что для удаления кук нам потребуется тоже живой пример, как это должно работать и демонстрация удаления кук!
Нам нужна простая кнопка для удаления кук внутри формы:
И собственно скрипт, который удалит наши Cookie — действие аналогично установке. только с той разницей, что в value путое поле.
SetCookie («test_2″,»»,time()+60, «/», $_SERVER[«HTTP_HOST»] , 0);
И вывод всей информации о существовании или не существовании COOKIE
echo ‘Куки уже установлены ‘;
echo ‘Cookie еще не установлены!’;
Далее вы можете проверить, как работает удаление COOKIE в живую! Если вы видите, что кук еще не существует, то установите из здесь
