Intereting Posts

Файлы cookie, не работающие на разных страницах

Хорошо, у меня есть набор файлов cookie, и я могу отчетливо видеть его, если я перехожу на частные данные в Firefox … нормально, поэтому, когда я повторяю его на одной странице в определенном каталоге, он работает (www.example.com/dir) но на странице индекса сайта (www.example.com) он не будет эхом, он говорит, что cookie не установлен. Да, у меня есть файлы cookie, да, я попробовал очистить кеш и все такое. Есть идеи? PHP btw

В каком каталоге вы находитесь, когда cookie устанавливается?

Из руководства PHP по setcookie () основное внимание уделяется:

Дорожка

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

Файлы cookie могут быть привязаны к определенному домену, субдомену, пути и протоколу (http / https). Вы должны указать путь при настройке файла cookie в PHP:

 setcookie("TestCookie", "Value", time()+3600 , '/' ); 

Четвертый параметр привязывает его к корню сайта, и он будет доступен в любом подкаталоге основного сайта.

Если вы хотите, чтобы он был доступен в основном домене и в любом поддомене, поставьте пятый параметр следующим образом:

 setcookie("TestCookie", "Value", time()+3600 , '/', '.example.com' ); 

Теперь он будет доступен для чтения:

http://www.example.com
example.com/newdir
awesome.example.com/newdir

Да, попробуйте это, я тоже столкнулся с этой проблемой, но разрешил этот код ниже.

 setcookie("TestCookie", "Value", time()+3600 , '/' ); 

Вам нужно проверить путь, по которому настроен файл cookie.

Если это не '/' , есть ваш ответ!

Задайте свой путь; значением по умолчанию является текущий каталог, в котором установлен файл cookie. Поскольку вы устанавливаете файл cookie в каталоге / dir, он доступен только в этом каталоге или под ним.

Вы обойдете это, явно задав путь, т. Е.

 setcookie(name,value,expire,path,domain,secure) 

Установите путь к «/».

Вам нужно установить $ path в / в setcookie() , если вы хотите получить к нему доступ во всех каталогах

Печенье должно быть установлено до выхода страницы !!! Поскольку файлы cookie отправляются сценарием в браузер в заголовках HTTP, перед отправкой вашей страницы они должны быть установлены до того, как вы даже отправите одну строку HTML или любую другую страницу . Когда вы отправляете какой-либо вывод, вы сигнализируете о конце HTTP-заголовков. Когда это произойдет, вы больше не можете устанавливать cookie. Если вы попытаетесь, функция setcookie () вернет FALSE, и cookie не будет отправлен.