使用CodeIgniter框架,我在里面有一个管理页面AdminController
,在它的构造函数中,我检查了用户是否未登录,然后重定向到登录页面。
在LoginController
成功登录后,我希望用户重定向到上一个管理页面。
从不同的例子,我尝试过:
$this->load->library('user_agent');
$this->session->set_userdata('redirect_back', $this->agent->referrer());
并且
$_SERVER['HTTP_REFERER']);
但是两者都给我返回了空字符串。
我该如何解决此问题。
在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');
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句