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