如何在登录后返回重定向页面(codeigniter)? [英] How to get back to the redirecting page after login (codeigniter)?
问题描述
我的CI应用程式中有登入控制器:
I have login controller in my CI app:
function index()
{
if($this->session->userdata('logged_in')==TRUE)
redirect('/success');
$data['error']=$this->session->flashdata('errormessage');
$this->load->view('auth',$data);
}
function process_login()
{
$username=$this->input->post('username');
$password=$this->input->post('password');
if($password == "good_pwd")
{
$data=array('username'=>$username,'logged_in'=>TRUE);
$this->session->set_userdata($data);
redirect('/success');
}
else
{
$this->session->set_flashdata('errormessage','Login failed');
redirect('/failed');
}
}
这是我在主控制器中的安全构造函数:
Thats my securing constructor in main controller:
function __construct()
{
parent::__construct();
if($this->session->userdata('logged_in')!=TRUE) redirect('/login');
}
当我试图进入www.mysite.com/main/ function1 /我没有登录,然后构造函数将我重定向到登录页面 - 当我正确登录,我被重定向到主首页,而不是页面,将我重定向到登录页面(在这个示例中:www.mysite .com / main / function1 /) - 如何做?
When I'm trying to get into www.mysite.com/main/function1/ and I'm not logged in, then constructor redirects me into login page - when I log in correct I'm being redirected into main home page instead of page which redirected me into login page (in this example case: www.mysite.com/main/function1/ ) - how to do it?
推荐答案
会话,所以你可以返回到上一页,类似以下的行:
you'd need to store your request URI in a session for this, so you can return to the previous page, something along the lines of:
function __construct()
{
parent::__construct();
if($this->session->userdata('logged_in')!=TRUE) {
$this->load->helper('url');
$this->session->set_userdata('last_page', current_url());
redirect('/login');
}
}
...您可以使用会话数据重定向回
... you can then use session data to redirect back
这篇关于如何在登录后返回重定向页面(codeigniter)?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!