Вопрос по PHP куки - PullRequest
       1

Вопрос по PHP куки

2 голосов
/ 13 июля 2010

Я наткнулся на фрагмент ниже:

setcookie('foo', 'v1', time() + 60*60*24, '/');
setcookie('foo', 'v2');
  • Каков эффект от настройки 2 печенье с тем же именем, но разные значения?
  • Это часто встречается на практике?
  • Где это используется?

Ответы [ 3 ]

3 голосов
/ 13 июля 2010

Приведенный выше пример просто перезапишет первый файл cookie вторым.Если вы хотите обновить куки для хранения более нового значения, вы можете перезаписать его значение.

Два куки могут иметь одинаковое имя, если они были установлены для разных доменов или путей.пример:

<?php 
setcookie("testcookie", "value1forhost", time(), "/", ".domain.com", 0, true);
setcookie("testcookie", "value2forsubdom", time(), "/", "subdom.domain.com", 0, true);
?>
1 голос
/ 13 июля 2010

Я думаю, что это не предназначено. Второй вызов cookie перезапишет исходный набор cookie. После первого вызова неизвестно, доступна ли поддержка браузера, так как при обработке сценария не поступает никакой информации от браузера. Файл cookie отправляется в виде заголовка HTTP и отправляется обратно браузером при последовательных запросах.

1 голос
/ 13 июля 2010

Часть v1 против v2 выглядит как уловка для обнаружения ошибки обработки cookie в браузере: если foo равно v1, браузер не обработал изменение значения.

Было бы интересно узнать о контексте кода.

Редактировать

Будет ли установлено 2 куки или перезаписать

Это зависит от того, откуда вы вызываете скрипт. Вызов setcookie () без пути устанавливает cookie для текущего пути (где путь - это путь URL, а не внутренний путь файловой системы). Таким образом, вызов с http://example.com/ создаст один файл cookie, а вызов с http://example.com/somewhere/inside/ создаст два отдельных файла cookie: один для / и один для /somewhere/inside/.

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