Почему cookie не удаляется с помощью php? - PullRequest
0 голосов
/ 01 марта 2011

Я пытаюсь удалить cookie с помощью php, но он не будет работать

setcookie("user", 'abc', time()-3600, '/', 'subdomain.tomline.nl', false, true);
setcookie("hash", 'abc', time()-3600, '/', 'subdomain.tomline.nl', false, true);

Он устанавливается с помощью следующего кода, и файл, в котором он устанавливается, находится в том же каталоге, что и файл, в котором он должен быть удален.

setcookie("user", $_POST['mail'], time()+7*24*60*60, '/', 'subdomain.tomline.nl', false, true);
setcookie("hash", $encryptedpw, time()+7*24*60*60, '/', 'subdomain.tomline.nl', false, true);

Из соображений конфиденциальности я изменил поддомен. Сайт пока не предназначен для публичного просмотра. Файл cookie устанавливается успешно, но когда я хочу удалить его, он все еще существует и все еще имеет значение установленного файла cookie, даже не «abc», как указано в сценарии удаления.

Ответы [ 3 ]

4 голосов
/ 01 марта 2011

Не используйте time() - 3600 для удаления файлов cookie. Вы не можете контролировать часы пользователя, и это то, что их браузер будет использовать для сравнения даты истечения срока действия cookie с местным временем. Особенно, если они находятся на расстоянии более одного часового пояса от вас.

Установите абсолютное значение "невозможно использовать это как время", например, Jan 2 1970 00:00:00 для даты / времени.

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

Вместо установки 'abc' Вы можете установить его просто пустым '', и это должно удалить куки, если вы приходите с соответствующего URL

0 голосов
/ 01 марта 2011
  session_destroy();

является одной идеей.

Попробуйте указать путь, если URL-адреса отличаются.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...