使用CodeIgniter框架,我在AdminController
内有一个管理页面,在其构造函数中我检查用户是否未登录,然后重定向到登录页面。
在LoginController
成功登录后,我希望用户重定向到上一个管理页面。
我试过不同的例子:
$this->load->library('user_agent');
$this->session->set_userdata('redirect_back', $this->agent->referrer());
还
$_SERVER['HTTP_REFERER']);
但两人都给我回了空字符串。
如何解决此问题。
答案 0 :(得分:0)
在AdminController
文件中,在重定向到LoginController
之前,将当前网址保存到会话变量中:
$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');