1

すべてのコントローラーでセッションを使用できるようにする最善の方法は何ですか? 私はそれを行うにはいくつかの方法があると思います:

1) define() セッションをグローバル変数に。これは最善のアプローチではないと聞き
ました 2) 一般的な MY_controller をセットアップし、他のすべてのコントローラーをそれに拡張します。そこにセッションを設定すると、すべてのクラスで利用できるように
なり
ますコントローラー?

これらの方法のいずれも使用できませんでした。どんなアイデアも役に立ちます。ありがとう

ところで、問題は codeigniter が同時 ajax リクエストを好まないことでした。それらは互いに干渉し合い、セッション データが消去されます。

4

4 に答える 4

5

セッションを設定したら:

$this->session->set_userdata('name', 'value');

どこでも呼び出すことができます:

$this->session->userdata('name');

ただし、セッションを機能させるには、最初に手動で Session クラスを初期化する必要があります。これは、次の関数を呼び出すことで実行できます。

$this->load->library('session');

または、CodeIgniter に自動ロードさせることもできます:

アプリケーション/設定/autoload.php

$autoload['libraries'] = array('session');

コントローラーでセッションを設定することをお勧めします。

ここに合併症は見られません。

于 2012-05-04T02:19:48.483 に答える
2

application/config/config.phpたぶん、ファイルにいくつかの構成変数を設定する必要があります

$config['cookie_domain']$config['cookie_path']この問題を引き起こしているようです。その場合は、値を「」に設定解除して、試してみてください。

于 2012-05-04T04:22:50.010 に答える
1

開発モードのときににを設定してみて$config['cookie_secure']くださいFALSE

于 2013-06-19T16:11:59.180 に答える
0

codeigniter セッションで問題を抱えている人は、気にしないでください。それらは Cookie を介して行われます。Web サイトに多数の ajax がある場合、これらには多くのバグがあります。ネイティブ セッションに切り替えます。

于 2012-11-13T17:57:56.077 に答える