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

时间:2012-08-30 18:51:42

标签: php codeigniter url session input

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

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

您只能完成批准朋友请求,例如,在成员区域内。但如果他们没有登录,则会将其重定向到(例如)

http://example.com/login_form

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

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

提前致谢。

2 个答案:

答案 0 :(得分:1)

好的伙计们,非常感谢你的帮助。我有一些选择,看起来最简单的是:

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

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

删除它
$this->session->unset_userdata('last_url');

答案 1 :(得分:0)

我会按照Facebook的方式给你,不论这是不是一个好方法,我会把它留给你。

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

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

确保网址参数 redirect_url 在用户登录后传递到页面,检查是否设置了redirect_url,如果是:

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