Blogger Information
Blog 263
fans 3
comment 2
visits 113347
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
javascript:history.go(-1) 返回上一页时,网页已过期
福哥的博客
Original
1017 people have browsed it

解决办法:首先试试back()或go(-2),若依然不行,则取消禁用页面缓存的限制
session_cache_limiter('private,must-revalidate');
作用:当session_cache_limiter('private')时,用处是让表单history.go(-1)的时候,填写内容不丢失。
go(-2)后再forward(1).
为什么我在点击浏览器的后退按钮后,所有字段的信息都被清空了

答:这是由于你在你的表单提交页面中使用了 session_start 函数。
因为我们后退浏览的是缓存页,而该函数会强制当前页面不被缓存。所以出现了’警告: 网页已经过期!’.
这些信息,而我们不得不刷新下才能正确显示,对于一个程序人员来说有可能无所谓,但是对于一个internet网上的一个顾客来说,看到该页面,他有可能关闭该页面,而不会去查看这些信息!
还有一个原因就是当一个网站流量比较大的时候,缓存是我们程序人员最好的工具,如果失去了这把工具,那么你所在的虚拟服务器必将受到考验!

解决办法为,

1、不使用session_start()函数。

2、在你的 Session_start 函数后加入 header("Cache-control: private"); 注意在本行之前你的PHP程序不能有任何输出。

还有基于session的解决方法,在session_start前加上
        session_cache_limiter('nocache');// 清空表单
        session_cache_limiter('private'); //不清空表单,只在session生效期间
        session_cache_limiter('public'); //不清空表单,如同没使用session一般

在开发过程中,往往因为表单出错而返回页面的时候填写的信息都不见了,为了支持页面回跳,可以通过两种方法实现。

第一,使用Header方法设置消息头Cache-control 
引用:
header(’Cache-control: private, must-revalidate’); //支持页面回跳
第二,使用session_cache_limiter方法 
        session_cache_limiter('private, must-revalidate'); //注意要写在session_start方法之前

<meta  http-equiv="Cache-Control"   CONTENT="private,must-revalidate">

 


Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post