读了一下,找不到太多运气的答案.
我有一个网站,会员可以匿名浏览网站,但有些网页受到限制.一旦他们点击了需要登录才能查看的链接,我会将成员重定向到登录页面.
我面临的问题是我不知道如何将成员重定向到他们登录后尝试访问的页面.
他们试图访问/profile.phtml,它将它们发送到/login.phtml,现在当他们登录时,我希望将它们发送到/profile.phtml,因为这是他们点击进入的地方.如果他们点击了/album.phtml,我希望他们在登录后发送到/album.phtml.
有人可以帮忙吗?我是否以某种方式将URL存储在会话中?
非常感激.
解决方法:
在制作标题(“Location:”)调用重定向之前,将它们当前所在的页面存储在$_SESSION [‘redirect_to’]中.成功登录后,再次调用header()调用以重定向回原始页面并取消设置会话变量,以免在任何地方意外重复使用.
$_SESSION['redirect_to'] = $_SERVER['REQUEST_URI'];
header("Location: http://example.com/login.php");
exit();
// On successful login
$redirect = $_SESSION['redirect_to'];
// unset the session var
unset($_SESSION['redirect_to']);
header("Location: http://example.com/$redirect");
exit();
标签:php,redirect
来源: https://codeday.me/bug/20190903/1795305.html