如果用户试图通过url访问页面,页面如何将用户重定向回上一个页面



我有一个登录页面,如果用户已经登录,则无法访问该页面。因此,登录页面会尝试将已登录的用户重定向回他们来自的页面。

如果用户单击链接转到某个页面,则重定向有效。问题是,如果用户在About页面中,尝试通过url访问登录页面,则不会设置referrer agent,因此登录页面不会将用户重定向回About页面,而是重定向回base url(我使用的是代码点火器和离子身份验证库)。登录页面的重定向代码如下:

if($this->ion_auth->logged_in())
{
  redirect($this->agent->referrer(), 'refresh');
}

是否可以运行此代码并正确重定向,而不是总是重定向到基本url?当用户登录时,我不会显示登录页面的链接。所以登录的用户只能使用url输入进入登录页面,我想要的是,如果他们这样做,他们将被重定向回他们来自的页面。

在您想要返回的页面中,您可以执行以下操作:

$this->session->set_userdata('referred_from', current_url());

然后重定向回该页面

$referred_from = $this->session->userdata('referred_from');
redirect($referred_from, 'refresh');

试试这个:

$this->load->library('user_agent'); redirect($this->agent->referrer());

其他

使用SESSION进行登录和注销。如果会话存在,则使用if语句阻止登录页面else允许登录页面。

我是这样做的。

重定向($_SERVER['HTTP_REFERER']);

我不知道是否有更好的方法,但我总是这样做:

当用户在About页面上点击登录时,取About页面的url地址,在上面做base64_encode,然后通过GET作为参数发送到登录页面。在登录页面上,若凭证有效,则从GET中获取该参数,base64_decode并重定向到那里。

如果只对主页执行此操作,则只能从url中获取控制器,但如果要将其应用于每个页面(/controller/method/var1/var2),则使用整个url或整个url减去基本url。

如果这个提示有帮助,请告诉我。

相关内容

最新更新