在另一个控制器中访问会话数据会出错
Accessing session data in another controller gives error
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();
但这给出了错误
A PHP Error was encountered
Severity: Notice
Message: Undefined variable: session_data
Filename: controllers/Photo.php
Line Number: 55
在 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');
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();
但这给出了错误
A PHP Error was encountered
Severity: Notice
Message: Undefined variable: session_data
Filename: controllers/Photo.php
Line Number: 55
在 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');