CodeIgniter语言 - 如何在登录后将用户重定向到上一次尝试的路由



使用 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');

最新更新