Cookie - почему cookie отображается в браузере после его удаления с использованием кода PHP - PullRequest
2 голосов
/ 25 марта 2011

Почему значения файлов cookie отображаются в браузере даже после того, как он был удален с помощью кода PHP, я просматриваю значения файлов cookie с помощью FireFox «Просмотреть дополнение к файлам cookie».Он исчезнет только после удаления или очистки файлов cookie моего браузера вручную.Я задаю этот вопрос, потому что моя работа будет работать только после удаления файлов cookie из браузера вручную, если я удалил cookie в коде PHP и запустился, он не будет работать, я устанавливаю значение cookie, устанавливая дату его истечения с прошлым значением. Пример:

setcookie ("myCookie", "", time() - 3600, "/", ".example.com");

Код, который я использую для настройки cookie:

setcookie ('Event', '', time() - 3600, '/', '.example.com');

Код, который я использую для удаления cookie:

setcookie('Event', '-1-1301223453%7C9de8f7c08bf2be19c125f86ced33a0c2%7C1301050653%7C-1%7C1301223453', '', '/', '.example.com', 0);

Но если я распечатываю значение cookie послеон сброшен, он будет пустым (ничего), но он будет отображаться в браузере

Пожалуйста, помогите! !!

Ответы [ 5 ]

2 голосов
/ 25 марта 2011

Это полностью основано на настройках браузера, в котором вы просматриваете, и вы спрашиваете, что браузер все еще показывает куки.Это правда, что браузер по-прежнему показывает куки, но вы расслабитесь, когда отметите его в PHP, куки не установлены.

print_r($_COOKIE);

покажет вам активные куки.

Запомните, когда вы очиститекуки из вашего браузера, тогда куки будут стерты, но когда вы отключите PHP, они будут установлены на время в прошлом, не стертое из истории браузера.

0 голосов
/ 25 марта 2011

вот простое руководство по удалению cookie по php Сначала мы устанавливаем значение cookie и срок действия.

setcookie('test', 'test', time() + 3600);

зайдите на страницу, вы увидите, что файл cookie 'test' успешно создан

затем мы изменим код php, чтобы удалить cookie 'test', просто установите для него значение пройденной даты

setcookie('test', 'test', time() - 3600);

зайдите на страницу еще раз, и вы обнаружите, что «тест» на cookie прошел

Кстати: я использовал расширение файла cookie для проверки значения файла cookie.

надеюсь, что это простое руководство поможет вам.

0 голосов
/ 25 марта 2011

Это может иметь разные причины. Прежде всего, проверьте, установлен ли файл cookie вообще. Затем убедитесь, что он использует те же параметры (кроме срока действия), что и при первоначальной установке cookie. А для параметра expiration используйте значение, которое в прошлом было определенно длинным (один час может быть слишком мал, если время вашего сервера отключено на несколько часов):

setcookie($cookieName, 'deleted', 1, $cookiePath, $cookieDomain);
0 голосов
/ 25 марта 2011

А как насчет этого подхода?

// 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 голосов
/ 25 марта 2011

Удалить cookie с помощью setcookie("myCookie");

...