PHP - 奇怪的页面刷新问题

时间:2015-04-28 08:55:57

标签: php browser-cache

我的php网站上的页面需要一直刷新。例如,我有一个不同用户的时间表,如果我登录并查看时间表和注销,那么当我以不同的用户身份登录并查看该时间表时,它将显示以前的人员时间表,除非我刷新它。我的网站上有更多页面存在此问题。退出时是否需要做额外的事情?我知道我可以使用ctrl + f5,但我希望该网站能够为我管理一些东西。有没有其他人有这样的问题任何建议?

这是我的退出代码:

<?php
//include 'header.php';
session_start();
include 'dbconnect.php';
//set the session date in to an empty array
$_SESSION = array();
//Expire thier cookie files
if (isset($_COOKIE["user"]) && isset($_COOKIE["pass"]))
{
    setcookie("user", '', strtotime( '-10 days'), '/');
    setcookie("pass", '', strtotime( '-10 days'), '/');
    session_destroy();

}
//destroy the session variables
session_destroy();
//double check if the user exists
if (isset($_SESSION['username']))
{
    header("Location: message.php?msg=Error:_Logout_Failed");
} else {
    session_destroy();

    header("Location: index.php");
    exit(); 
}
session_destroy();

?>

1 个答案:

答案 0 :(得分:0)

首先,session_destroy()本身不足以销毁会话数据,请参阅How can I clear my php session data correctly?

来自:https://stackoverflow.com/a/6472150/3536236

  

使用session_destroy()后,会话cookie将被删除   会话不再存储在服务器上。 $_SESSION中的值可以   仍然可用,但它们不会出现 next 页面加载。

编辑:要通常确保清除会话数据,请尝试以下操作:

session_start();
$_SESSION = array(); //clears the session data. 
session_destroy();

其次,这可能只是一个问题,因为您从同一台计算机上签下了几个用户,这可能不会发生在非管理员用户/主机上。您所显示的代码上没有任何内容实际显示数据的显示方式,如果您显示来自固定点(如文件(而非数据库资产))的数据,您还可以探索可能性 clearstatcache()可以帮助你。

在PHP输出页面上设置标题以强制页面刷新,服务器和标题信息可能允许浏览器缓存页面,因此添加类似

的内容
header("Cache-Control: no-cache, must-revalidate"); //HTTP 1.1
header("Expires: Sat, 26 Jul 2007 05:00:00 GMT"); // Date in the past 

到输出页面(HTML代码上方)以确保浏览器不会缓存它们。