Как удалить cookie php
Cookie (куки) представляют небольшие наборы данных (не более 4 кБайт), с помощью которых веб-сайт может сохранить на компьютере пользователя любую информацию. С помощью куки можно отслеживать активность пользователя на сайте: залогинен пользователь на сайте или нет, отслеживать историю его визитов и т.д.
Сохранение cookie
Для установки куки на компьютере пользователя используется функция setcookie() . Она должна вызываться перед тем, как будет отправлен ответ пользователю. Эта функция имеет следующее определение:
bool setcookie(string $name, string $value, int $expire, string $path, string $domain, bool $secure, bool $httponly);
Функция setcookie() может принимать следующие параметры:
- name : имя cookie, которое будет использоваться для доступа к его значению
- value : значение или содержимое cookie — любой алфавитно-цифровой текст не более 4 кБайт
- expire (необязательный параметр): срок действия в секундах, после которого cookie уничтожаются. Если данный параметр не установлен или равен 0, то уничтожение cookie происходит после закрытия браузера. Обычно устанавливается относительно текущего времени, которое можно получить с помощью функции time()
- path (необязательный параметр): путь к каталогу на сервере, для которого будут доступны cookie. Если задать «/», cookie будут доступны для всего сайта. Если задать, например, «/mydir/» , cookie будут доступны только из каталога /mydir/ и всех его подкаталогов. По умолчанию значением является текущий каталог, в котором устанавливаются cookie.
- domain (необязательный параметр): задает домен, для которого будут доступны cookie. Если это домен второго уровня, например, localhost.com , то cookie доступны для всего сайта localhost.com, в том числе и для его поддоменов типа blog.localhost.com . Если задан поддомен blog.localhost.com , то cookie доступны только внутри этого поддомена.
- secure (необязательный параметр): указывает на то, что значение cookie должно передаваться по протоколу HTTPS. Если задано true , cookie от клиента будет передано на сервер, только если установлено защищенное соединение. По умолчанию равно false .
- httponly (необязательный параметр): если равно true , cookie будут доступны только через http протокол. То есть cookie в этом случае не будут доступны скриптовым языкам, например, JavaScript. По умолчанию параметр равен false
Здесь устанавливаются две куки: «name» и «age». Первая куки уничтожается после закрытия браузера, а вторая — через 3600 секунд, то есть через час.
При необходимости мы можем увидеть сохраненные куки в браузере с помощью инструментов разработчика. Например, вид куки в Google Chrome:

В cookie можно сохранить любую информацию, но не стоит сохранять важные с точки зрения безопасности данные, например, пароли. А если и сохранять какую-то важную информацию, то следует хранить ее в зашифрованном виде.
Получение cookie
Чтобы получить cookie, можно использовать глобальный ассоциативный массив $_COOKIE , например, $_COOKIE[«name»] . Так, получим ранее сохраненные куки:
"; if (isset($_COOKIE["age"])) echo "Age: " . $_COOKIE["age"] . "
"; ?>
Сохранение массивов в cookie
Сохранение в куки массивов имеет некоторые особенности. Например, сохраним следующий массив:
setcookie("lang[1]", "PHP"); setcookie("lang[2]", "C#"); setcookie("lang[3]", "Java");
Теперь получим его и выведем на страницу:
if (isset($_COOKIE["lang"])) < foreach ($_COOKIE["lang"] as $name =>$value) < $name = htmlspecialchars($name); $value = htmlspecialchars($value); echo "$name. $value
"; > >
Удаление cookie
Для удаления cookie достаточно в качестве срока действия указать какое-либо время в прошлом:
setcookie ("name", "", time() - 3600);
Удаление cookie в php?
На нее можно перейти по ссылке в шапке с любой страницы сайта.
После авторизации пользователя нужно редиректнуть на предыдущую страницу (ту с которой перешли).
Для этого я создаю куки в самом начале файла.
Затем внизу если пользователь прошел авторизацию затираю куки и перенаправляю на предыдущую страницу.
IsAuthorized()) < $temp = $_COOKIE['prev_addr']; setcookie("prev_addr","",time()-10000); LocalRedirect($temp); >?>
Но кука не удаляется.
- Вопрос задан более трёх лет назад
- 20140 просмотров
Как удалить куки
Когда я хочу удалить файл cookie, я пытаюсь выполнить следующее:
unset($_COOKIE[‘hello’]);
В браузере Firefox я вижу, что файл cookie все еще существует. Как я могу удалить cookie?
Ответ 1
Вы можете попробовать это:
if (isset($_COOKIE[‘remember_user’]))
unset($_COOKIE[‘remember_user’]);
setcookie(‘remember_user’, null, -1, ‘/’);
return true;
> else
return false;
>
Или установите значение «» и дату истечения срока действия cookie на вчерашний день (или любую дату в прошлом).
setcookie(«hello», «», time()-3600);
Тогда срок действия cookie истечет при следующей загрузке страницы.
Ответ 2
Для надежного удаления файла cookie недостаточно установить для него срок действия в любое время в прошлом, рассчитанный вашим сервером PHP. Это связано с тем, что клиентские компьютеры могут и часто имеют время, отличное от времени вашего сервера.
Лучшая практика — перезаписать текущий файл cookie пустым файлом cookie, срок действия которого истекает через одну секунду в будущем после эпохи (1 января 1970 г., 00:00:00 UTC), следующим образом:
setcookie(«hello», «», 1);
Ответ 3
У меня была такая же проблема в моем коде, и я обнаружил, что это проблема пути cookie. Я установил файл cookie, используя значение пути «/», но не имел никакого значения пути, когда пытался его очистить, поэтому он не очистился. Итак, вот пример того, что сработало:
Установка cookie:
$cookiePath = «/»;
$cookieExpire = time()+(60*60*24);//one day -> seconds*minutes*hours
setcookie(«CookieName»,$cookieValue,$cookieExpire,$cookiePath);
Очистка cookie:
setcookie(«cookieName»,»», time()-3600, $cookiePath);
unset ($_COOKIE[‘cookieName’]);
Надеюсь, это поможет.
Ответ 4
Вот как работает код PHP v7 setcookie(), когда вы запускаете это:
setcookie(‘user_id’,»);
setcookie(‘session’,»);
?>
Из вывода tcpdump во время прослушивания порта 80 сервер отправляет клиенту (браузеру) следующие заголовки HTTP:
Set-Cookie: user_id=deleted; expires=Thu, 01-Jan-1970 00:00:01 GMT; Max-Age=0
Set-Cookie: session=deleted; expires=Thu, 01-Jan-1970 00:00:01 GMT; Max-Age=0
Наблюдая за пакетами в следующих запросах, браузер больше не отправляет эти файлы cookie в заголовках.
Ответ 5
Если вы хотите полностью удалить cookie со всего вашего текущего домена, следующий код определенно вам поможет :
unset($_COOKIE[‘hello’]);
setcookie(«hello», «», time() — 300,»/»);
Этот код полностью удалит переменную cookie со всего вашего домена, т. е. «/» — это означает, что значение переменной cookie установлено для всего домена, а не только для текущего домена или пути. time() — 300 означает, что он устанавливает предыдущее время, поэтому срок его действия истечет.
Вот так он отлично удаляется.
Ответ 6
В предыдущем ответе я увидел небольшую ошибку в решении. Я согласен, что лучшим решением, вероятно, будет это:
if (isset($_COOKIE[‘remember_user’]))
unset($_COOKIE[‘Hello’]);
unset($_COOKIE[‘HelloTest1’]);
setcookie(‘Hello’, null, -1, ‘/’);
setcookie(‘HelloTest1’, null, -1, ‘/’);
return true;
> else
return false;
>
Но так вы удаляете куки в каждом случае, когда функция unset работает, и тут же создаете новые куки с истекшим сроком действия в случае, когда функция unset не работает. Это означает, что, даже если функция unset сработает, на компьютере все равно останется 2 cookie. С логической точки зрения, поставленная цель — удалить куки, если это возможно, а если это действительно невозможно — сделать их просроченными, чтобы получить самый «чистый» результат.
Поэтому, я думаю, лучше сделать так:
if (isset($_COOKIE[‘remember_user’]))
setcookie(‘Hello’, null, -1, ‘/’);
setcookie(‘HelloTest1’, null, -1, ‘/’);
unset($_COOKIE[‘Hello’]);
unset($_COOKIE[‘HelloTest1’]);
return true;
> else
return false;
>
Ответ 7
$cookie_name = «my cookie»;
$cookie_value = «my value»;
$cookie_new_value = «my new value»;
// Создание cookie,
setcookie($cookie_name, $cookie_value , time() + (86400 * 30), «/»); //86400 = 24 hours in seconds
// Получение значения cookie,
$cookie_value = $_COOKIE[$cookie_name];
// Обновление cookie,
setcookie($cookie_name, $cookie_new_value , time() + (86400 * 30), «/»);
// Удаление cookie,
setcookie($cookie_name, » , time() — 3600, «/»); // time() — 3600 означает установку даты истечения срока действия cookie на последний час.
Ответ 8
Вы должны удалить куки с помощью php на вашем сервере, а также с помощью js для вашего браузера. ( о ни создаются с помощью php, но файлы cookie также находятся в клиенте браузера):
Пример:
if ($_GET[‘action’] == ‘exit’)
// удаляем куки с помощью js, а затем на сервере с помощью php:
echo ‘
var delete_cookie = function(name)
document.cookie = name + «=;expires=Thu, 01 Jan 1970 00:00:01 GMT;»;
>;
delete_cookie(«madw»);
delete_cookie(«usdw»);
‘;
unset($_COOKIE[‘cookie_name’]);
unset($_COOKIE[‘cookie_time’]);
Мы будем очень благодарны
если под понравившемся материалом Вы нажмёте одну из кнопок социальных сетей и поделитесь с друзьями.
Как удалить 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 в живую! Если вы видите, что кук еще не существует, то установите из здесь