点击后退按钮重新加载页面

tus*_*har 8 php caching back-button

我有一个需要登录的网页.一旦用户登录,我就开始会话,一旦他退出我销毁它,但当我按下后页时,它再次给我用户个人资料页面,理想情况下不应该是用户已经注销的情况.但是,如果我在注销后重新加载页面,它可以正常工作.

这是一个当地的聊天室,每个在线和登录的人都可以在一起聊天.有三个页面:login.php,auth.php,logout.php

login.php是包含表单的常见登录页面.auth.php有一个div显示所有以前的聊天记录,不外现,其形式再次发送上单击文本框和分享按钮auth.php所以每次的形式公布在chatpost被发送到数据库,并权威性重新装入聊天中最新的数据库格..

现在的问题是,一旦我退出,我取消设置所有变量并销毁会话,但即使这样,如果我点击浏览器(Safari)中的后退按钮,auth.php可以看到没有最后一个聊天条目的先前版本,理想情况下不应该会话,因为会话是销毁.我已经进行了会话验证auth.php,所以基本上我希望auth.php重新加载用户在注销后访问它,因为重新加载auth.php显示"你还没有登录"

我试过了

<?php header("Cache-Control: no-cache");
header("Pragma: no-cache");
?>
and
<head>
<meta http-equiv='Pragma' content='no-cache'>
<meta http-equiv='Expires' content='-1'>
</head>
Run Code Online (Sandbox Code Playgroud)

抱歉这个冗长的问题,但我真的需要帮助.

Mar*_*aio 11

header("Expires: Thu, 19 Nov 1981 08:52:00 GMT"); //Date in the past
header("Cache-Control: no-store, no-cache, must-revalidate"); //HTTP/1.1
Run Code Online (Sandbox Code Playgroud)

这适用于FF3.6,IE7,IE8,Chrome5(当按下浏览器的后退按钮时,页面总是重新加载)

另一个解决方案是发送与session_start()函数发送完全相同的标题,与上面的标题非常相似,但更加丰富:

header("Expires: Thu, 19 Nov 1981 08:52:00 GMT"); //Date in the past
header("Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0"); //HTTP/1.1
header("Pragma: no-cache");
Run Code Online (Sandbox Code Playgroud)

注:也是这里显示顺序相同的发送顺序session_start()(你可以测试这个用的是HttpFox插件的FF)


aul*_*ron 6

这些标头将强制浏览器和代理(如果有)不缓存页面并强制向该页面的服务器发出新请求:

  header("Cache-Control: private, must-revalidate, max-age=0");
  header("Pragma: no-cache");
  header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // A date in the past
Run Code Online (Sandbox Code Playgroud)

  • 现在当我在重新加载页面后输入上面的代码时,它的值为null (2认同)