0

Expressionengine プロジェクトにセッションを使用しています。次の方法を使用して、ページの上部にセッションを設定しました。

    if (session_id() == ''){
         session_start(); 
    } or

   if(!isset($_SESSION)){
        session_start();
    }

      or

   if(empty($_SESSION['userid'])){
      session_start(); 
   } 

セッションチェックを行うカスタム式エンジンプラグインを作成しました。

しばらくして、セッションの奇妙な動作を観察しました。URLごとに異なる設定になっています。http:// url の場合は設定が異なり、www:// url の場合は設定が異なります。http://example.comと www.example.comの両方で同じ結果が得られるようにセッションを設定および取得するにはどうすればよいですか。

この URL http://ellislab.com/forums/viewthread/231468/の手順も実行しました。同じ問題をhttp://ellislab.com/forums/viewthread/232604/に投稿しました。しかし、それは私を助けません。

誰かがこれについて私を助けることができますか?

4

2 に答える 2

2

ちょっとした注意: www はサブドメインであり、プロトコルではありません。つまり、www.example.com であり、www://example.com ではありません。

これは言われています:問題は、セッションCookie(セッションCookieを使用していると思います)が異なるサブドメインで認識されないため、ドメイン全体で利用できるようにする必要があるという事実です

詳細については、この php 関数を確認できます: http://php.net/session_set_cookie_params

于 2013-01-15T14:18:18.090 に答える
0

ありがとう@mishu。www がサブドメインであり、session_cookie の問題であると説明した後、私はいくつかの実験を行ってから、少しグーグルで調べました。

stackoverflow に関するこの投稿は非常に役に立ちました。 サブドメイン間の PHP セッション

expressionengine / codeigniter のルート フォルダーにある index.php ファイルを開き、以下の行を追加しました。

ini_set('session.cookie_domain','.example.com');

今は正常に動作しています。誰かがこのスレッドについて簡単に説明できれば、他の開発者にとって非常に役立つでしょう。

于 2013-01-15T15:05:13.243 に答える