使用 CodeIgniter 框架,我在AdminController
中有一个管理页面,在其构造函数中,我检查用户是否未登录,然后重定向到登录页面。
在成功登录后的LoginController
,我希望用户重定向到以前的管理页面。
从不同的例子中,我尝试了:
$this->load->library('user_agent');
$this->session->set_userdata('redirect_back', $this->agent->referrer());
而且
$_SERVER['HTTP_REFERER']);
但两者都给我空字符串。
我该如何解决这个问题。
在AdminController
文件中,在重定向到LoginController
之前,将当前 url 保存到会话变量:
$referrer_value = current_url().($_SERVER['QUERY_STRING']!=""?"?".$_SERVER['QUERY_STRING']:"");
$this->session->set_userdata('login_referrer', $referrer_value);
// redirect to login page
在您的LoginController
中,成功登录后,检查会话"login_referrer"是否有值。如果它有,则使用该值重定向。
if($this->session->userdata('login_referrer')!=""){
$tmp_referrer = $this->session->userdata('login_referrer');
$this->session->unset_userdata('login_referrer');
redirect($tmp_referrer);
}
您可能需要调用以下命令来加载所需的库和帮助程序,以便上述代码成功运行。
$this->load->helper('url');
$this->load->library('session');