Php 页面在会话\u销毁后返回旧会话
不知道为什么会这样。但是我的logout.php代码工作正常,重定向到主页,会话被破坏。当我回到某个页面时,它会显示一个旧的会话,我不明白 这是我的登录文件Php 页面在会话\u销毁后返回旧会话,php,session-cookies,Php,Session Cookies,不知道为什么会这样。但是我的logout.php代码工作正常,重定向到主页,会话被破坏。当我回到某个页面时,它会显示一个旧的会话,我不明白 这是我的登录文件 $_SESSION['id'] = $row['user_id']; $_SESSION['username'] = $row['username']; setcookie('id', $row['user_id'], time() + (60 * 60 * 24 * 2)); setcookie('username
$_SESSION['id'] = $row['user_id'];
$_SESSION['username'] = $row['username'];
setcookie('id', $row['user_id'], time() + (60 * 60 * 24 * 2));
setcookie('username', $row['username'], time() +(60 * 60 * 24 * 2));
这是我的注销文件
// if the user is logged in, delete the cookie to log them out
session_start();
if (isset($_SESSION['id'])) {
$_SESSION = array();
// delete the user id and the username cookie by setting their expirations to an hour ago (3600)
if (isset($_COOKIE[session_name()])) {
setcookie('session_name()', '', time() - 3600);
}
//destroy the session
session_unset();
session_destroy();
}
//delete the user id and username cookies
setcookie('id', '', time() - 3600);
setcookie('username', '', time() - 3600);
unset($_COOKIE['id']);
unset($_COOKIE['username']);
unset($_SESSION['id']);
unset($_SESSION['username']);
// redirect to the home page
$home_url = 'http://page.com/';
header('Location: ' . $home_url);
exit();
以下是我页面上的代码:
会话_start()
这段代码在主页上运行良好,但当我进入一个子目录时,它会显示一个随机的旧会话。在销毁会话之前,您是否尝试过先取消它们的设置
unset($_SESSION['id']);
unset($_SESSION['username']);
然后调用session_destroy()函数
另外,我在某个地方读到(不幸的是,我记不起在哪里——可能是如此,甚至……)将直接SQL结果($row['id'))存储在cookie中不是一个好主意。最好先将结果存储在$\u会话中,然后将该$\u会话存储在cookie中。我想我已经解决了问题。我有一个单独的登录子目录,所以当我从我的主目录注销显然是分开的。我得从登录子目录中找出点什么
unset($_SESSION['id']);
unset($_SESSION['username']);