В приложении, которое я пишу, используя сочетание среды разработки и языков, мне нужно получить доступ к файлу cookie из двух разных поддоменов, каждый из которых находится на отдельном хосте.
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
не находит файл cookie. Утвержденный оператор if
возвращает false, даже если файл cookie существует.
Я проверил, что установленный файл cookie для mydomain.com
(путем проверки моих файлов cookie для 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
Если есть какая-либо дополнительная информация, которую я могу предоставить, чтобы лучше описать проблему, пожалуйста, дайте мне знать!