2010-04-14 71 views
0

对我的php脚本使用wamp服务器。我在注销代码上遇到困难。 每当我点击注销链接,然后点击网页浏览器上的后退按钮,它仍然显示只能被登录用户访问的页面。 我在index.php的开头有这段代码这是由注销链接称为摧毁会话:如何使页面在登录时不被缓存

<?php 
session_start(); 
session_destroy(); 


?> 

而且我有这个在用户页面的开头:

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

我不知道为什么userpage尚可在用户注销后访问。

作为另一个说明将禁用这个后退按钮可以解决问题 请帮助。

回答

0

从高速缓存页面停止你的浏览器在HTML或PHP文件的头部标记添加代码的这两行(如果与HTML中使用)

<META HTTP-EQUIV="Pragma" CONTENT="no-cache"> 
<META HTTP-EQUIV="expires" CONTENT="0"> 
9

而应该设置页面不能缓存,这样的:打回来的时候,越来越

header("Cache-Control: no-cache, must-revalidate"); 
header("Expires: Thu, 15 Apr 2010 20:00:00 GMT"); 

通过这种方式,客户端应该重新请求页面的新鲜从“退出”版本服务器。

另一方面,不要永远与客户的按钮混乱,他们希望他们以某种方式工作,最好为您的网站行为像99.999%的互联网,而不是打破他们的经验。

+0

什么他的要求是不可能的(设计)的任何情况。即使您设置了页面离开处理程序并且什么都不做,大多数现代浏览器都会检测到这种反模式并允许用户离开页面。 +1。 – 2010-04-14 03:09:10

+0

我不明白,请我仍然是初学者。我在哪里放置代码。我试图把它放在页面的部分: <?php header(“Cache-Control:no-cache,must-revalidate”); ?> 但没有工作 – user225269 2010-04-14 03:14:04

+0

@ user225269 - 更新...我忘了expires头文件一起去了(对不起,自PHP项目以来已经有一段时间了)。你坚持在你不希望他们回去的页面上(或者没有看到缓存版本),它告诉客户端,这个页面在重新加载时不好,它需要再次询问服务器。 – 2010-04-14 03:17:41

相关问题