我正在开发一个 CMS。我有三个脚本和 2 个 session 变量
$_SESSION['logged']
$_SESSION['redirect']
“auth.inc.php” - 每次用户请求页面时运行。它检查 $_SESSION['logged'] 是否已设置且等于 1。如果未设置,则使用
重定向主页header(location:index.php)
并且页面引用链接保存在$_SESSION['redirect']中。如果 $_SESSION['logged'] 设置的不活动时间小于所需值,则重定向到请求的页面,否则重定向到 logout.php
“index.php” - 检查用户名和密码。我成功套了
$_SESSION['logged']=1
如果设置了$_SESSION['redirect'],它将重定向到该页面,否则重定向到默认页面
“logout.php” - 它使用以下方式取消设置并销毁 session
session_unset();
session_destroy();
但是我希望如果用户由于 session 超时而注销,那么登录后应该将其重定向到旧页面。由于我取消设置 session $_SESSION['redirect'] 丢失了。因此,我没有使用 session_unset() ,而是只取消设置 $_SESSION['logged']
unset($_SESSION['logged']);
session_destroy();
但我仍然无法在 session_destroy() 之后检索 $_SESSION['redirect']。该变量仍未设置。由于 session 过期注销后如何重定向到旧页面
最佳答案
session_destroy() 实际上会销毁当前 session 的数据。要使用您设置的任何值,您必须再次调用 session_start()。
此外,如果 session 过期,您设置的 session cookie 中的任何内容都将无效。
你能做的最好的事情就是保存你的最后一页或数据库中的任何内容,因为你说用户可以登录。然后在登录时获取该值,并重定向到它。
祝你好运!
关于php - PHP 注销时重定向到旧页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7103363/