Как получить доступ к значениям cookie на разных путях одного домена с помощью PHP?

Может ли параметр пути быть добавлен в $ _COOKIE []?

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

Хотя HTTP-клиент (т. Е. Браузер) не отправляет путь, к которому был установлен cookie, PHP действительно делает предположения о кукисах в отношении массива $ _COOKIE .

Если вы установили два файла cookie с тем же именем, один со значением «first-value» с path /, а второй со значением «second-value» с path / test , браузер, следующий за рекомендуемым, но не обязательным, поведением от RFC отправит вам оба значения. Когда вы получаете доступ к URL-адресу по пути / test , браузер отправляет это:

 Cookie: name=second-value, name=first-value 

«Проблема» в том, что PHP только считывает первое значение – $ _COOKIE ['name'] будет содержать только значение «второе значение» без намека на то, что существует «первое значение». Если вам нужен доступ к обоим значениям, вам нужно самостоятельно проанализировать значение $ _SERVER ['HTTP_COOKIE'] – в этом примере будет указано «name = second-value, name = first-value». Обратите внимание, что «второе значение» является первым в строке, потому что оно было установлено с более длинным путем. Обратите внимание, что RFC не гарантирует такого поведения, он говорит только, что HTTP-клиенты ДОЛЖНЫ это сделать.

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

это запутывает … вот оно от php:

Путь на сервере, на котором будет доступен cookie. Если установлено значение '/', файл cookie будет доступен во всем домене. Если установлено значение '/ foo /', cookie будет доступен только в каталоге / foo / и всех подкаталогах, таких как / foo / bar / домена. Значение по умолчанию – это текущий каталог, в который установлен файл cookie.

http://php.net/manual/en/function.setcookie.php

Вы обращаетесь к нему, как и к любому другому файлу cookie. Он станет доступен в $ _COOKIE, если скрипт имеет к нему доступ.

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

Я не думаю, что можно будет получить cookie с другого пути, поскольку это может вызвать проблему безопасности.