Печенье через поддоменов и хостов
В приложении, которое я пишу, используя комбинацию сред разработки и языков, мне нужен доступ к cookie из двух разных поддоменов, каждый на отдельном хосте.
Печенье устанавливается наwww.mydomain.com
используя следующий код PHP, и я пытаюсь получить к нему доступdistant.mydomain.com
на отдельном хосте.
setcookie('token', base64_encode(serialize($token)), time()+10800, '/', '.mydomain.com');
Я пытаюсь получить доступ к cookie изdistant.mydomain.com
используя следующий код:
if (isset($_COOKIE['token'])) { /* do stuff */ }
Эта проблема:distant.mydomain.com
не находит печенье. if
Только что упомянутый оператор возвращает false, хотя cookie существует.
Я подтвердил, что установленный файл cookie предназначен дляmydomain.com
(проверив мои куки Firefox). Я не могу придумать причину, по которой это не сработает.
Используя то же самоеsetcookie
код, у меня есть старое приложение, работающее исключительно наwww.mydomain.com
хост, и это приложение может получить доступ к cookie через домены. Это заставляет меня подозревать, что проблема связана с отдельными хостами.
На всякий случай уместна любая из следующих сведений:
- www.mydomain.com
такое IIS 6.0
- distant.mydomain.com
это Apache 2.2.9
- Оба сервера используют PHP 5.2.x
- Оба сервера работают на Windows Server 2003
Если есть какая-либо дополнительная информация, которую я могу предоставить, чтобы лучше описать проблему, пожалуйста, дайте мне знать!