Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何使页面在登录时不被缓存_Php_Javascript - Fatal编程技术网

Php 如何使页面在登录时不被缓存

Php 如何使页面在登录时不被缓存,php,javascript,Php,Javascript,我使用wamp服务器来编写我的php脚本。我在注销代码上有困难。 每次我单击注销链接,然后单击web浏览器上的“后退”按钮时,它仍然显示只有登录用户才能访问的页面。 我在index.php的开头有以下代码,该代码由注销链接调用以销毁会话: <?php session_start(); session_destroy(); ?> 我在用户页面的开头有这样一句话: <? session_start(); if(!session_is_registered(myusern

我使用wamp服务器来编写我的php脚本。我在注销代码上有困难。 每次我单击注销链接,然后单击web浏览器上的“后退”按钮时,它仍然显示只有登录用户才能访问的页面。 我在index.php的开头有以下代码,该代码由注销链接调用以销毁会话:

<?php
session_start();
session_destroy();


?>

我在用户页面的开头有这样一句话:

<? 
session_start();
if(!session_is_registered(myusername)){
header("location:login.php");
}
?>

我不知道为什么用户注销后仍然可以访问userpage

另一个注意事项是,为此禁用“后退”按钮可以解决问题
请提供帮助。

您应该将页面设置为不可缓存,如下所示:

header("Cache-Control: no-cache, must-revalidate");
header("Expires: Thu, 15 Apr 2010 20:00:00 GMT");
这样,客户端应该在回击时重新请求页面,从服务器获取新的“注销”版本


另一方面,永远不要弄乱客户端的按钮,他们希望它们以某种方式工作,最好让你的网站表现得像99.999%的互联网用户,而不会破坏他们的体验。

要阻止浏览器缓存页面,请在html或php文件的头标记中添加这两行代码(如果与html一起使用)



他所要求的在任何情况下都是不可能的(出于设计)。即使您设置了一个页面离开处理程序而什么也不做,大多数现代浏览器都会检测到这种反模式,并允许用户无论如何离开页面+1.我不懂,拜托,我还是个初学者。我应该把代码放在哪里。我试着把它放在页面的这一部分,但没有work@user225269-更新…我忘了带expires标题(抱歉,从PHP项目开始已经有一段时间了)。如果将此内容粘贴到不希望他们返回的页面上(或者不希望看到缓存的版本),它会告诉客户端此页面无法重新加载,需要再次向服务器请求。在将任何内容输出到浏览器之前,必须发送标题。不要把它放在部分,把它放在所有输出之上。
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="expires" CONTENT="0">