Быстрый вопрос: можно установить путь, где cookie допустим, но также возможно быть (считанным) этот путь из cookie (в PHP)?
Или иначе: действительно ли возможно расширить время cookie, не зная то, что соединяет каналом, это идет (но хранение пути то же)?
Поскольку большинство браузеров по-прежнему используют спецификацию Netscape (см. кешированную версию http://wp.netscape.com/newsref/std/cookie_spec.html ), а не ту, которая указана в RFC 2109 или RFC 2965 , элементы списка в поле заголовка запроса Cookie
будут состоять только из пары имени и значения:
При запросе URL из HTTP-сервер, браузер сопоставляет URL-адрес со всеми файлами cookie, и если какие-либо из них совпадают, в HTTP-запрос будет включена строка, содержащая пары имя / значение всех совпадающих файлов cookie. Вот формат этой строки:
Cookie: NAME1 = OPAQUE_STRING1; NAME2 = OPAQUE_STRING2 ...
Только новые спецификации (RFC 2109 и RFC 2965) позволяют клиенту отправлять путь в запросе (выдержка из RFC 2109):
Синтаксис заголовка это:
cookie = "Cookie:" версия cookie 1 * ((";" | ",") значение cookie) значение cookie = ИМЯ "=" ЗНАЧЕНИЕ [ ";" дорожка] [";" домен] cookie-version = "$ Version" "=" значение NAME = attr VALUE = value path = "$ Path" "=" значение domain = "$ Domain" "=" значение
[…] Значение для атрибут path должен быть значением из атрибута Path, если таковой имеется, соответствующего заголовка ответа Set-Cookie. В противном случае атрибут следует опустить в заголовке запроса cookie. […]
да, вы можете изменить/продлить время куки, если куки установлен как root cookie. То есть вы должны установить cookie с "/" в последнем параметре. см. код ниже...
setcookie("Message", $msg, time()+60, "/");
если нет, то в основном куки будут храниться в текущем пути (корень страницы). вы можете попробовать получить к нему доступ.
Для PHP нет способа прочитать путь к куки, потому что браузер отправляет на сервер только значения куки, которые должны быть отправлены, и ничего больше.
Вы можете попробовать переустановить cookie без указания пути, но я сильно сомневаюсь, что это сработает. Может существовать множество различных соответствующих cookie с одинаковыми именами и менее и более точными путями. Если вы попытаетесь установить cookie с тем же именем, но без пути, браузер не будет знать, какой из cookie ему следует обновить (может быть, тот, который имеет наиболее точный путь? но это может привести к ошибкам (безопасности?), когда точный cookie, который вы ожидаете установить, не установлен).