2011-09-14 14 views
1

は、私は以下のドメインで設定している:サブドメインに使用されているドメインCookieを停止するにはどうすればよいですか?

mydomain.com

www.mydomain.com(インターネットエクスプローラ上でテスト)一つの問題があり

:いくつかのクッキーがMYDOMAINに設定されている場合は .comでは、www.mydomain.comと同じ名前のクッキーを設定しても、このcookieはwww.mydomain.comにも有効です。

より具体的なexamople:

1)利用者は、ウェブサイトのmydomain.comに彼れる好ましい言語を選択し、私はusrlng =アン

2クッキーを設定)次の日に他の誰かが同じコンピュータを使用するにnaviagtes www.mydomain.comと彼の言語を選択し、私はusrlng = deを設定します。しかし、Internet Explorerは、cookie = enとusrlng = deの両方のクッキーをサーバーに送信し続けます(これはFiddlerで表示されます)。同じCookieを2回送信し、サブドメインの値で 'usrlng'を上書きしないのはなぜですか?

同時に、私はサブドメインのPHPSESSIDが正しく上書きされていることを知っています。サーバーに送信されるPHPSESSIDクッキーは2つありません。

私はusrlngクッキーを修正し、PHPSESSIDと同じように動作させるにはどうしたらいいですか?

答えて

1

今のところ私は 'domain'ではなく 'cookie'の 'host'を設定することで問題を解決しました。 'ホスト'プロパティは、クッキーをmydomain.comまたはwww.mydomain.comに制限することができます。

これは唯一の方法ですが、「ドメイン」はトップレベルのドメインCookieを過ぎて設定することはできません。

2

セッションごとに異なるsave_pathを設定することもできます。セッションを共有しないためです。 PHPの例:

$subdomain = array_shift(explode('.',$_SERVER['HTTP_HOST'])); 

ini_set('session.save_path','D:\website_sessions\'.$subdomain.'\'); 

ini_set('session.save_path','D:\website_sessions\'.$subdomain.'\'); 

PHPはセッションディレクトリに書き込むためのアクセス権が必要です。

関連する問題