Отдельные куки хранятся для http://thewebsite.com и http://www.thewebsite.com? - PullRequest
2 голосов
/ 17 октября 2010

Мой друг и я создаем систему входа в систему на основе файлов cookie с использованием PHP и MySQL, в которой при входе пользователя в систему сохраняется файл cookie, в котором хранятся данные для входа. Проблема заключается в том, что для каждого URL-адреса http://thewebsite.com и http://www.thewebsite.com, хранятся отдельные файлы cookie.

Существует ли решение, которое позволило бы нам сохранить один и тот же файл cookie для нескольких URL-адресов, или нам бы пришлось перенаправлять пользователя на http://www.thewebsite.com каждый раз.

Если это так, каков простой способ проверить, существует ли в URL «www», и соответственно перенаправить?

Ответы [ 3 ]

3 голосов
/ 17 октября 2010

использовать аргумент домена для setcookie

домен

Домен, для которого доступен cookie.Чтобы сделать файл cookie доступным во всех поддоменах сайта example.com (включая сам сайт example.com), установите для него значение «.example.com».Хотя некоторые браузеры принимают файлы cookie без начального. »RFC 2109 требует, чтобы он был включен.Если для домена задать значение «www.example.com» или «.www.example.com», файл cookie будет доступен только в поддомене www.

3 голосов
/ 17 октября 2010

Посмотрите на параметр domain: http://php.net/manual/en/function.setcookie.php Он точно описывает сценарий, который у вас есть.

0 голосов
/ 17 октября 2010

Если вы используете setcookie и не указываете домен в параметре domain , setcookie не будет устанавливать соответствующий параметр Domain в поле заголовка Set-Cookie (это также относится к session.cookie_domain ).

Теперь, если параметр Domain отсутствует, пользовательский агент по умолчанию задает значение домена, равное запросу-хосту (см. RFC 2109, раздел 4.3.1 ):

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

  • Домен - по умолчанию используется запрос хоста. (Обратите внимание, что в начале запроса-хоста нет точки.)

Если присутствует параметр Domain , его значение должно начинаться с точки, в противном случае пользовательский агент отклонит файл cookie (см. RFC 2109 раздел 4.3.2 ):

Чтобы предотвратить возможные нарушения безопасности или конфиденциальности, пользовательский агент отклоняет cookie-файл (не хранит его информацию), если выполнено любое из следующих действий:

  • Значение атрибута Domain не содержит встроенных точек или не начинается с точки.

Таким образом, как описано на странице руководства setcookie, используйте .example.com, если вы хотите, чтобы ваш файл cookie был доступен на example.com и его поддоменах, и не укажите домен, если вы хотите сделать его доступным только для текущего домена.

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