2017-11-11 169 views
0
public function LoginUser() 
{ 

    $this->form_validation->set_rules('email', 'Email', 'required'); 
    $this->form_validation->set_rules('password', 'Password', 'required'); 
    if ($this->form_validation->run() == FALSE) 
    { 
     $this->load->view('login'); 
    } 
    else 
    { 

     $data['Email']=$this->input->post('email'); 
     $data['Password']=$this->input->post('password'); 
     $result=$this->UserAccount_model->LoginUser($data); 
     if($result) 
     { 

      $session_data = array(
      'sesid' => $result[0]->id, 
      'sesname' => $result[0]->Name, 
      'sesemail' => $result[0]->Email); 

      // Add user data in session 
      $this->session->set_userdata('logged_in', $session_data); 

      $url=base_url()."UserAccount/LoggedIn"; 

       header("Location:$url"); 
     } 

照片的控制器現在我訪問會話數據在另一個控制器訪問會話數據給出錯誤

public function LikePhoto() 
{ 
    $Id=$this->uri->segment(3); 
    $UserId=$this->$session_data['sesid']; 
    print($UserId); 
    exit(); 

但是這給錯誤

遇到

一個PHP錯誤

嚴重性:通知

消息:未定義的變量:session_data是

文件名:控制器/ Photo.php

行號:55

回答

2

在CI獲取會話數據,你必須使用$this->session->userdata()

因此,將您的代碼更改爲:

$UserId=$this->session->userdata('logged_in')['sesid']; 

編輯如果你想從陣列只會增加數組變量數據存儲在會話

因此改變

$this->session->set_userdata('logged_in', $session_data); 

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

,並檢索:

$UserId=$this->session->userdata('sesid'); 
+0

它應該不是'logged_in'而是' sesid'就像這樣'$ this-> session-> userdata('logged_in')['sesid']' – C2486

+0

因爲這也必須改變'set_userdata'。見更新@ user2486 –

+0

好吧,你做了更改 – C2486

相關問題