3

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

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

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

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

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 错误。

4

2 回答 2

1
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 );
}
于 2015-03-11T11:34:40.980 回答
0

你确定你在正确的地方设置了用户数据吗?

尝试放置第二个参数来重定向,例如:

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

这也迫使重定向为更改 url 的新请求。

于 2014-09-11T17:47:06.260 回答