Я устанавливаю куки в PHP, но они не отправляются с заголовками - PullRequest
2 голосов
/ 07 мая 2011

Привет.

Я пытаюсь сохранить идентификатор сеанса пользователя в файлах cookie браузера. Я проверял снова и снова, и у меня не было проблем с пробелами или любой другой информацией, отправляемой перед заголовками.

Мое приложение имеет одну точку входа (index.php) и обрабатывает строку запроса для вызова контроллеров / etc. Когда я захожу на мою главную страницу, файлы cookie не отображаются, поэтому на нем отображается страница входа пользователя. Когда я прослеживаю это с помощью XDebug, я нажимаю на submit, которая возвращает POST в index.php. Когда это возвращается, файлы cookie от предыдущих входов в систему отправляются на страницу! Однако, поскольку он пытается обработать информацию POST, мой скрипт снова устанавливает cookie. Когда он перенаправляет обратно на главную страницу (то есть index.php без POST или других параметров), куки не отправляются.

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

Примечание: Я устанавливаю путь к '/' в setcookie (). Кроме того, я использую mod_rewrite и .htaccess для создания SEO-дружественных URL. Тем не менее, я пытался без него, и это, похоже, не имеет значения ...

Фрагменты кода:

Написать:

setcookie(self::SESSION_COOKIE, $this->session_id, time()+60*60*24*30, '/', 'localhost');

Для доступа:

$_COOKIE[self::SESSION_COOKIE];

Спасибо за помощь -

1 Ответ

1 голос
/ 07 мая 2011

Проверьте параметр path, который вы передаете функции setcookie.Убедитесь, что для него установлено значение '/' (или какой-либо корень URI вашего приложения).

Из руководства :

путь

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

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