PHP禁止页面缓存的方法(IE和Firefox通用)

2013-01-30 23:56:34来源:新猪猪作者:

比如我有3个页面,1.购物车 2.订单地址和付款方式 3.显示订单生成2 -> 3的时候,就插入订单数据,生成订单信息以及订单下的商品,并且清空购物车对应商品数据。

比如我有3个页面,1.购物车 2.订单地址和付款方式 3.显示订单生成2 -> 3的时候,就插入订单数据,生成订单信息以及订单下的商品,并且清空购物车对应商品数据。

肯定不希望用户到了最后一个页面,都已经生成订单了,再点浏览器的返回按钮回到前一个页面。

那么在订单地址页面加入:

header("Cache-Control:no-cache,must-revalidate,no-store");   //这个no-store加了之后,Firefox下有效
header("Pragma:no-cache");
header("Expires:-1");

这个页面不缓存了,并且有个判断购物车商品为空就跳转到空购物车的页面,那么用户点击浏览器后退,回来之后,也直接到 购物车页面了。

详细说明:

点击后退按钮,读取的是浏览器里的缓存文件,所以可以利用缓存禁用后退按钮。

方法:用<head>内添加以下代码。

<meta http-equiv="Expires" content="0">

Expires(期限),说明:可以用于设定网页的到期时间。一旦网页过期,必须到服务器上重新传输。

用法:<meta http-equiv="expires" content="Fri, 12 Jan 2001 18:18:18 GMT">

注意:必须使用GMT的时间格式。

content="-1",网页在任何时候都不能被Cache存储。

<meta http-equiv="Cache-Control" content="no-cache">

<meta http-equiv="Pragma" content="no-cache">

第一次访问网页的时候计算机会自动缓存该网页的内容,第二次访问相同的url,浏览器就会直接把原来的缓存调出来,即使你新的网站更新了,显示出来的还是早先的那个版本,如此。如果设置为no-catch的话,本地就不会缓存了,即每次请求的都是最新版本。

但加上面三句在IE中有效,在FF中无效,在FF中在加上下面这句。

<meta http-equiv="Cache-Control" content="no-store">

禁用后退按钮有许多方法,这个方法只是其中一种。

关键词:PHP

赞助商链接: