登录后重定向到上一页 ion_auth codeigniter

redirect to previous page after login ion_auth codeigniter

我正在为我的应用程序使用 codeigniter 和 Ion_auth。把它们都安装好了,它们工作得很好......这是我第一次真正不得不进入并使用 codeigniter 进行自定义重定向(codeigniter 的新手,也不是 php 大师,但非常自给自足)。

我想做的是说有人试图访问我的自定义控制器(example.com/index.php/dashboard)。如果他们去那里并登录,那么他们很好,如果他们不是,它会重定向到 example.com/index.php/auth/login。然后在登录时,我希望将它们发送回仪表板,而不是基本 URL。我尝试在登录函数中设置 HTTP_REFERER,如下所示:

1
$this->session->set_userdata('refered_from', $_SERVER['HTTP_REFERER']);

和像这样的重定向(在登录逻辑之后)(通过谷歌在许多网站/论坛上找到,是的,我搜索出了问题):

1
2
3
4
5
6
7
8
9
if(!$this->ion_auth->logged_in())
 {
    // If the user is not logged in, then show the login form ( or redirect to login form )
    redirect('**login url**);
 } else {

  // If the user is logged in then don`t let them see the the login form again and send  back to the referring page.
redirect($this->session->userdata('refered_from'));
}

此错误每次都显示为 500 错误。


1
2
3
4
5
6
7
8
9
10
11
12
function login() {
    $this->load->library('user_agent');  // load user agent library
    // save the redirect_back data from referral url
    $this->session->set_userdata('redirect', $this->agent->referrer() );  
   ...
}

if( $this->session->userdata('redirect') ) {
    $redirect_url = $this->session->userdata('redirect_back');
    $this->session->unset_userdata('redirect_back');
    redirect( $redirect_url );
}

您确定将用户数据设置在正确的位置吗?

尝试添加第二个参数来重定向,例如:

1
redirect($this->session->userdata('refered_from'),"refresh");

这也会强制重定向为更改 url 的新请求。