使用 CodeIgniter,我正在使用 isset() 函数检查 cookie 是否存在,并根据它重定向到另一个控制器。现在我的问题是我得到了一个重定向循环,因为 check_logged_in 函数认为 cookie 不存在。
这是我的代码:
该函数位于login_helper
.
function check_logged_in()
{
if(!isset($_COOKIE['uid']))
{
redirect('users/login');
return FALSE;
}
else
{
return TRUE;
}
下一个函数驻留在home
控制器中并调用上面描述的 check_logged_in() 函数。
public function index()
{
$this->load->helper('url');
$this->load->helper('login');
$logged_in = check_logged_in();
if($logged_in === TRUE)
{
$this->load->view('templates/header');
$this->load->view('pages/home_view');
$this->load->view('pages/advanced_search_view');
$this->load->view('pages/contact_information_view');
$this->load->view('templates/footer');
}
}
下一个函数驻留在users
控制器中
public function login()
{
if(isset($_COOKIE['uid']))
{
redirect(home);
}
else
{
-some unrelated code-
}
当cookie确实存在并且我运行home/index
函数或users/login
函数时,我最终会进入重定向循环。当 cookie 不存在时,我最终会进入我的登录页面,因此users/login
cookie 检查似乎工作正常,但home/index
功能却没有。
我试过把
if(!isset($_COOKIE['uid']))
{
redirect('users/login');
}
直接在home/index
函数中,但它给出了同样的问题。