1

私のサイトでは、PHP セッションを使用して、ログインしているユーザーを追跡しています。すべてのページには session_start(); があります。適切に実装されていますが、www. ドメイン名からでは、セッション変数を使用しません。wwwなしで元に戻すと。再び正常に動作するため、変数は設定解除されず、使用されていません。

Firefox では奇妙なことに、逆になっています。www。動作し、なしでは動作しません。これを回避する方法はありますか?PayPal を使用して自分のサイトにリダイレクトしているため、ユーザーがログアウトしてすぐに再度ログインする必要がなく、問題が発生しています。

4

2 に答える 2

8

www.example.comexample.com同じウェブサイトではありません。通常はそうですが、慣例によるものです。www.example.comのサブドメインですexample.com

このため、オンに設定された Cookie はexample.com使用されませんwww.example.com

session.cookie_domainphp.ini 設定を.example.com(もちろん、独自のドメイン名に置き換えてください) に設定することで、メイン ドメインだけでなくすべてのサブドメインでもセッション cookie が機能するようにすることで、この動作をある程度オーバーライドできます。

于 2013-02-01T18:01:21.170 に答える
3

PHP で cookie_domain を設定するか、ユーザーが www を含むサイトまたは www を含まないサイトのみを表示するようにする必要があります。これを行うには、.htaccess (Apache サーバー) を使用できます。

複数のサブドメインに Cookie ドメインを設定する例:

session_set_cookie_params(0, '/', '.example.com'); 
session_start(); 
于 2013-02-01T18:02:19.417 に答える