无法从php中的会话中检查用户ID

时间:2017-02-21 09:37:01

标签: php codeigniter

检查用户ID是否设置的代码问题,我在检查用户是否登录时使用此代码。

public function _construct()
{
    parent:: _construct() ;
    if( ! $this->session->userdata('user_id') )
    return redirect ('login');
}

输出:

logged in page can still be accessed by entering url.

2 个答案:

答案 0 :(得分:0)

首先确保您使用$this->session->set_userdata('user_id','value');设置会话。然后使用$this->session->has_userdata('user_id');

检查会话是否已设置
public function _construct()
    {
    parent:: _construct() ;
    if($this->has_session->userdata('user_id'))
    redirect('login');
}

同时从return redirect('login');移除返回。您可以returnredirect,但不能同时删除。{/ p>

了解更多资料Codeigniter Session

答案 1 :(得分:0)

您必须先使用

设置会话
$this->session->set_userdata('user_id','value');

然后检查会话并重定向,如果没有使用下面的代码设置,

if(!$this->session->userdata('user_id')){
redirect ('login','refresh');
}

你不能使用return,因为这不是被调用的函数而你正在返回一些东西,重定向辅助函数会自动在登录页面上重定向。

谢谢