1

私のプロジェクトには、session->userdata配列から値を引き出すいくつかのビューがあります。プロジェクト全体が開発マシンで問題なく動作しますが、プロジェクトをサーバーにコピーすると、$ this->session->userdataがnullであることがわかります。

これは、session->userdata配列にいくつかの値を挿入するコードです。これはコントローラーで呼び出されます。

    $sessionArray = array(
            'web_id' => $id,
            'paperId' => $paperId,
            'prelimId' => $prelimId,
            'intakeId' => $intakeId,
            'finalId' => $finalId,
     );

     $this->session->set_userdata($sessionArray);

ビューファイルで私は

var_dump($this->session->userdata);

返される値はnullです。前に述べたように、私の開発用コンピューター(WAMPを実行している)では配列はnullではありません。誰かが理由を知っていますか?

4

2 に答える 2

4

すべてのセッションデータをASSOC配列として取得するには、このメソッドを使用できますall_userdata()(CodeIgniterユーザーガイドをご覧ください)

次のように、コントローラー内にそれを記述し、戻り値をビューに送信できます。

$data['userdata'] = $this->session->all_userdata();
$this->load->view('your/view.php', $data); // use $userdata in the view

注:ビュー 内でセッションライブラリを直接使用すると、予期しない問題が発生する可能性がありますビューではなくコントローラーでセッションを管理してみてください。

于 2012-10-19T19:33:51.040 に答える
0

まず最初に回答ブロックにここに投稿して申し訳ありません..........これらの値を$sessionArrayに割り当てています。私が意味するのは、モデルまたはコントローラー、あるいはビューファイルです。

ビューファイルでvar_dump($ this-> session-> userdata)を呼び出していますか。

それをコントローラーで呼び出して、コントローラー経由でファイルを表示するための配列として渡してみませんか。

コントローラでこのように試してみてください。ユーザー名とパスワードを送信すると、データベースから$login配列でユーザーの詳細を取得します。

これらの詳細をモデルファイルでこのようなセッション配列に送信します

$this->session->set_userdata('logged_in_user', $login);

その後、コントローラーでセッション配列のユーザー名を使用する場合は、以下のように使用します。

$logged_in = $this->session->userdata("logged_in_user");
$model=array();
$model['logged_in_user']=$logged_in[0];

$ model配列に割り当てた後、ビューファイルでそれを使用するのが好きなので、このようにコントローラーからビューファイルにその$model配列を渡します。

$this->load->view('view_file_path',$model);

渡された配列から好きなように、ビューファイルでその配列を使用できます。

于 2012-10-18T19:38:42.560 に答える