0

基本的に私のWeb開発サーバーでは、いくつかのWebサイトプロジェクトが進行中です。Webサイトプロジェクトのセッション変数の1つが別のWebサイトプロジェクトのセッション変数と競合しているという問題が発生しました。これらのWebサイトプロジェクトは両方とも同じサーバーの下にあります。それで、ウェブサイトプロジェクト間の変数を区別する良い方法はありますか?これが理にかなっていることを願っています...

また、両方のWebサイトはメンバーシップタイプのWebサイトであるため、Webサイトのメンバーシップ部分に同じセッション変数を使用しています。

両方のWebサイトはcodeigniterフレームワーク上にあります。では、codeigniterを使用して、この問題を回避するにはどうすればよいですか?

4

3 に答える 3

1

使用するだけ session_name

例 :

  session_name("WebsiteID");
于 2012-08-10T06:44:50.653 に答える
0

session_name関数(http://php.net/manual/en/function.session-name.php)を使用して、各サイトに一意のセッション名を付けることができます。セッション名をいつ設定するか(基本的に他のセッション機能の前)についての注意事項を注意深く読んでください。

もう1つの方法は、「パス」機能を使用してWebサイトのパスに制限することです(http://www.php.net/manual/en/function.session-set-cookie-params.php)。このように、セッションCookieは、設定したパス上またはその下のスクリプトにのみ表示されます。(最初に「ルート」レベルのCookieを削除してください。これらは表示されますが、すべてのサブディレクトリになります!)

または、Cookieを使用して手動で行う場合は、Cookieの名前の前に一意のプレフィックスを付けます。SetCookie('WebsiteName_'。'session'、ID、時間、パスなど)。

于 2012-08-10T06:39:14.767 に答える
0

私がしていることは、各サイトの構成ファイルを用意することです。これは、すべてのphpファイルにrequire_onceです。この構成ファイルでは、DBパラメーター(ユーザー、パスワードなど)やセッションヘッダーなどを指定します。$ config ['sess_header'] ='site1';

セッションを作成またはクエリするときは、次のsess_headerを使用します。例:$ _ SESSION [$ config ['sess_header']] ['user_id'] = $ user_id;

于 2012-08-10T06:40:52.013 に答える