開発環境と言語の組み合わせを使用して作成しているアプリケーションでは、それぞれ別のホストにある 2 つの異なるサブドメインから Cookie にアクセスする必要があります。
次の PHP コードを使用して Cookie が設定されており、別のホストwww.mydomain.com
からアクセスしようとしています。distant.mydomain.com
setcookie('token', base64_encode(serialize($token)), time()+10800, '/', '.mydomain.com');
distant.mydomain.com
次のコードを使用し て Cookie にアクセスしようとしています。
if (isset($_COOKIE['token'])) { /* do stuff */ }
問題: distant.mydomain.com
Cookie が見つからない。 Cookie が存在する場合でも、前述のif
ステートメントは false を返します。
設定されている Cookie が次のものであることを確認しましたmydomain.com
(Firefox の Cookie を確認して)。これが機能しない理由は考えられません。
同じ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 で動作している
問題をより適切に説明するために提供できる情報がさらにある場合は、お知らせください。