удалить куки в php - PullRequest
       3

удалить куки в php

0 голосов
/ 22 февраля 2012

Я пытаюсь удалить файл cookie.

Я использую setcookie("PHPSESSID", "", time() - 6400);, который удаляет файл cookie очень хорошо.

Однако он не полностью удален.При просмотре firebug в разделе «Заголовки ответа» удаляется cookie.Однако в разделе «Заголовки запроса» cookie не удаляется (и это влияет на поведение кода).

Как удалить (или изменить, или получить доступ) этот другой cookie?

Спасибо!

Ответы [ 5 ]

3 голосов
/ 19 августа 2015

У меня была такая проблема с моим кодом выхода из системы, после тяжелой работы и исследований, я сам наконец понял это и использовал javascript для решения проблемы.

Вы можете легко сделать это на стороне клиента, используя скрипт нижевам может потребоваться изменить значение пути и хоста:

document.cookie = "PHPSESSID=; expires=Thu, 01 Jan 1970 00:00:00   UTC;path=/;host=localhost";
1 голос
/ 22 февраля 2012

Возможно, вы захотите сбросить переменную $ _COOKIE, добавив

unset($_COOKIE['PHPSESSID']);

в следующей строке. Это, однако, только влияет на текущую загруженную страницу.

1 голос
/ 22 февраля 2012

при использовании setcookie("PHPSESSID", "", time() - 6400); срок действия файла cookie истекает, как 2 часа назад, попробуйте использовать setcookie("PHPSESSID", "", 1);, чтобы истечь в эпоху 1 января 1970 года.

если это не сработает, вы можете попробовать добавить путь следующим образом setcookie("PHPSESSID","",time()-6400,"/");

Вы можете попробовать этот пример из http://www.php.net/manual/en/function.setcookie.php#73484, чтобы удалить все куки, но я, так как, похоже, это какой-то супер-куки, который знает ..

// unset cookies
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, '/');
    }
}
0 голосов
/ 13 января 2014

Этот код может решить эту проблему:

session_start(); // initialize session
session_destroy(); // destroy session
setcookie("PHPSESSID","",time()-3600,"/"); // delete session cookie
0 голосов
/ 22 февраля 2012

См. Пример 1 здесь, чтобы удалить и уничтожить сеанс:

http://php.net/manual/en/function.session-destroy.php

сначала удалите cookie, затем уничтожьте сеанс.

...