Перейти к содержимому

Как удалить cookie php

  • автор:

Как удалить 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 в PHP и setcookie

В 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 в браузере!?

И далее вам остается выделить те куки(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 в живую! Если вы видите, что кук еще не существует, то установите из здесь

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *