Несколько файлов cookie с тем же именем - PullRequest
3 голосов
/ 18 декабря 2009

Я только что понял, что у меня проблема в IE при работе с одной из моих страниц. Я установил cookie с помощью:

setcookie('page', '12345', '2000000', '/');

И если я вхожу в систему, я сбрасываю cookie, снова вызывая эту функцию В Firefox все работает нормально, потому что старый куки удаляется, но в IE оба куки остаются? Как это может случиться? Разве это не незаконно?

Теперь я исправил это с помощью:

setcookie('page', '', time() - 3600, '/');
setcookie('page', '1234', '2000000', '/');

Это правильное решение или я что-то упустил?

Ответы [ 3 ]

4 голосов
/ 18 декабря 2009

Согласно документации , это правильный способ удаления cookie.

1 голос
/ 18 декабря 2009

Просто догадка, но кажется, что значение expires довольно мало для отметки времени, поэтому файлы cookie, вероятно, истекают немедленно (т.е. в конце сеанса). Может быть, что-то подобное сбивает с толку IE, позволяя использовать несколько файлов cookie?

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

setcookie('page', '12345', time() + 3600, '/');

Кстати, ваше решение мне подходит.

0 голосов
/ 16 октября 2010

У меня похожая проблема.

Я перезагружаю свою страницу несколько раз, используя session_start () каждый раз, когда она загружается. JavaScript устанавливает куки, которые я использую в PHP. Если клиент Internet Explorer, $ _ENV ["HTTP_COOKIE"] содержит несколько записей для каждого файла cookie. Это не происходит с Firefox.

Насколько я понимаю, при выполнении кода в домене с именем x.y.z Internet Explorer отправляет файлы cookie для файла x.y.z, а затем файлы cookie для файла y.z. Затем PHP помещает оба набора файлов cookie в $ _ENV ["HTTP_COOKIE"].

Возможно, это можно считать ошибкой PHP, а может и нет. ИМХО, это ошибка Internet Explorer. Я публикую это здесь в надежде, что это поможет вам решить вашу проблему.

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