阅读了一些文章以找到答案,运气不太好。
我有一个网站,成员(member)可以匿名浏览该网站,但某些页面受到限制。一旦成员单击需要他们登录才能查看的链接,我就会将他们重定向到登录页面。
我面临的问题是我不知道如何将成员(member)重定向到他们在登录后尝试访问的页面。
他们试图访问/profile.phtml ,它会将他们发送到/login.phtml ,现在当他们登录时,我希望将他们发送到/profile.phtml 因为这是他们点击到达的地方。如果他们点击/album.phtml,我希望他们在登录后被发送到/album.phtml。
有人可以帮忙吗?我是否以某种方式将 URL 存储在 session 中?
非常感谢。
最佳答案
就在 header("Location:")
调用重定向之前,将他们当前所在的页面存储在 $_SESSION['redirect_to']
中。成功登录后,再次调用 header()
以重定向回原始页面并取消设置 session 变量,以免在任何地方意外重用。
$_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 - 重定向到页面用户在登录后试图到达,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7004530/