2017-12-12 6 views
0

セッションが存在するかどうかを確認するときに、未定義のインデックスエラーが発生します。このエラーは、セッションが存在しない場合にのみ発生します。セッションが作成されCodeigniter - セッションが存在するかどうかを確認する際に、未定義のインデックスエラーが発生する

コントローラー:

$data = array(
       'email' => $this->input->post('email'), 
       'is_logged_in' => TRUE 
      ); 

$this->session->set_userdata($data); 
redirect('site/index'); 

コントローラーのチェックが行われます。私は、セッションライブラリがロードされていることを確認作った

$is_logged_in = $this->session->userdata['is_logged_in']; // error occurs here 

if(!isset($is_logged_in) || $is_logged_in !== TRUE) 
{ 
    $data['main_content'] = 'login_form'; 
    $this->load->view('includes/template', $data); 
} 

+1

*正確な*エラーメッセージが表示されますか? – nogad

答えて

2

あなたは連想配列のような方法を扱っています。 codeigniterでuserdataは、渡したインデックスの値を返す関数です。だからあなたの行:

$is_logged_in = $this->session->userdata['is_logged_in']; 

は次のようになります。

$is_logged_in = $this->session->userdata('is_logged_in'); 
1
$this->session->userdata['is_logged_in']; 

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

あるべきユーザーデータが関数、ではない配列であるため()代わりに[]あります。

ドキュメント毎の

Retrieving Session Data

+0

セッションデータを取得するもう1つの方法は、この構文で '$ this-> session-> is_logged_in;'そのキーが '$ this-> session-> userdata( 'is_logged_in '); ' – DFriend

関連する問題