Codeigniter-如果未登录,则存储请求的url


Codeigniter - Store requested url if not logged in

在我的网站中,如果会话过期或他们注销,他们必须重新登录才能进入会员区。例如,如果他们想做这样的

http://example.com/site/approve_friend_request/RaNdOmCoDe

您只能在会员区内完成对好友请求的审批。但如果他们没有登录,他们会被重定向到(例如)

http://example.com/login_form

我想知道有什么想法可以存储请求的url,并在他们成功登录后将其引导到那里。我有一些想法,但不确定最好的方法是什么。理想情况下,我不想在url中存储任何信息,除非这是一个好方法:

http://example.com/login_form/redirect_after_loggin/approve_friend_request/RaNdOmCoDe

提前谢谢。

好的,伙计们,非常感谢你们的帮助。我确实有几个选择,似乎最简单的是:

$this->session->set_userdata(array('last_url' => current_url()));

即使我没有登录,它也会存储,并在登录后保留。一旦我重定向,我就用删除了它

$this->session->unset_userdata('last_url');

我会告诉你Facebook的做法,无论这是不是一种好的方法,我都会把它留给你。

假设您想将用户重定向到http://www.google.com登录后。

$redirect_url = json_encode('http://www.google.com');
header( 'Location: http://site.com/login_form?redirect_url=' . $redirect_url );

确保URL参数redirect_URL从一页传递到另一页,用户登录后,检查是否设置了redirect_URL,如果是:

$redirect_url = json_decode($_GET['redirect_url']);
header('Location: $redirect_url');