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 的新请求。