1

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

繰り返しになりますが、両方のWebサイトはcodeigniterフレームワークに基づいて構築されています。それで、codeigniterを使用して、これを行う方法はありますか?

4

3 に答える 3

2

サーバー側でdBを使用してセッション情報を追跡している場合は、サイトごとに異なるdbを指定できます。config.phpで、設定$ config ['sess_table_name']='ci_sessions';を探します。

于 2012-08-10T18:58:44.223 に答える
1

両方のプロジェクトが同じドメインにある場合、ユーザーのブラウザがセッションキーをそのドメインのCookieに保存するため、同じ名前のセッション変数は競合します。ここでのベストプラクティスは、セッション変数に名前空間を付けることです。たとえば、プロジェクト「foo」と「bar」の両方に「username」変数が必要な場合は、2つの変数に「foo_username」と「bar_username」という名前を付けます。プロジェクトごとにconfig.phpファイルに定数を設定し、変数に使用するプレフィックスを付けると、セッション変数を取得するたびにそれを使用できます。たとえば、config.phpで「APP_NAME」定数を設定し、最初のプロジェクトで「foo」に設定した場合、次のコマンドでセッション変数を設定できます。

$this->session->set_userdata(APP_NAME.'_username', 'smg');

で取得します

$this->session->userdata(APP_NAME.'_username');
于 2012-08-10T18:08:17.943 に答える
1

アプリケーションごとに、次のコマンドを使用してデータベースに保存されるようにセッションを構成できます。

sess_use_database = true;

http://codeigniter.com/user_guide/libraries/sessions.html

于 2012-08-10T19:11:15.767 に答える