Php 页面在会话\u销毁后返回旧会话

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

不知道为什么会这样。但是我的logout.php代码工作正常,重定向到主页,会话被破坏。当我回到某个页面时,它会显示一个旧的会话,我不明白

这是我的登录文件

   $_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']);