2016-11-29 14 views
0

私はセッション変数を$userIDに変えています。CodeIgniterで新しいセッションを開始

これで、別のコントローラ内で変数を使用する必要があります。セッション$this->session->sess_destroy();の後に新しいセッションを開始しようとしました。

次に、私の2番目のコントローラーでセッションデータを取得しようとしましたが、NULLになっています。

まずコントローラ

public function index() 
{ 

    if ($this->input->post('tid')) { 

     $this->session->userdata('user_id'); 
     $userID = $this->session->userdata('user_id'); 
     $this->session->sess_destroy(); 

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

     $this->input->post('userid'); 
     $data['tid'] = $this->input->post('tid'); 
     $this->load->view('client/login', $data); 


    } else { 
     header("Location: " . base_url() . "index.php/select"); 
     die(); 
    } 

} 

セカンドコントローラ

private function getResults() 
{ 
    $this->session->userdata('user_id'); 

    $userID = $this->session->userdata('userid'); 

    var_dump($userID); 
} 

私は破壊セッションの後、私の最初のコントローラで変数をvardump場合は、変数が出力します。しかしそれは2番目にはありません。

+1

提案:header()の代わりにdie; urlヘルパーからcodeigniter redirect()を使用しないでください。 – user4419336

答えて

0

私はこれがあなたの問題であるかわからないが、私は、このライン上の問題があると思う:

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

set_userdata accepts two kinds of arguments (link to docs) :

  1. 連想キーと値の配列または
  2. として単一の引数
  3. "キー"第1引数と第2引数 "値"

あなたが好むようにあなたがおそらく行うために探していることは、むしろ

$this->session->set_userdata('user_id', $userId); 

または

$data = ['user_id' => $userId]; 
$this->session->set_userdata($data); 

です。また、補足として、この種のコードは数回繰り返されます:

$this->session->userdata('user_id'); 
$userID = $this->session->userdata('user_id'); 

最初の呼び出しは役に立たず、削除する必要があります。

+0

ありがとうございました –

+0

私はあなたを助けることができてうれしい! – SolarBear

関連する問題