用PHP程序实现支持页面后退的两种方法


Posted in PHP onJune 30, 2008

  第一,使用Header方法设置消息头Cache-control

QUOTE:
header('Cache-control: private, must-revalidate');  //支持页面回跳

第二,使用session_cache_limiter方法

QUOTE:
  //注意要写在session_start方法之前
    session_cache_limiter('private, must-revalidate');

补充:
Cache-Control消息头域说明
Cache-Control指定请求和响应遵循的缓存机制。在请求消息或响应消息中设置Cache-Control并不会修改另一个消息处理过程中的缓存处理过程。请求时的缓存指令包括no-cache、no-store、max-age、max-stale、min-fresh、only-if- cached,响应消息中的指令包括public、private、no-cache、no-store、no-transform、must- revalidate、proxy-revalidate、max-age。各个消息中的指令含义如下:

    Public指示响应可被任何缓存区缓存。

    Private指示对于单个用户的整个或部分响应消息,不能被共享缓存处理。这允许服务器仅仅描述当用户的部分响应消息,此响应消息对于其他用户的请求无效。

    no-cache指示请求或响应消息不能缓存

    no-store用于防止重要的信息被无意的发布。在请求消息中发送将使得请求和响应消息都不使用缓存。

    max-age指示客户机可以接收生存期不大于指定时间(以秒为单位)的响应。

    min-fresh指示客户机可以接收响应时间小于当前时间加上指定时间的响应。

    max-stale指示客户机可以接收超出超时期间的响应消息。如果指定max-stale消息的值,那么客户机可以接收超出超时期指定值之内的响应消息。

关于表单刷新

问:为什么我在点击浏览器的后退按钮后,所有字段的信息都被清空了?

答:这是由于你在你的表单提交页面中使用了 session_start 函数。该函数会强制当前页面不被缓存。解决办法为,在你的 Session_start 函数后加入 header("Cache-control: private"); 注意在本行之前你的PHP程序不能有任何输出。

补充:还有基于session的解决方法,在session_start前加上

QUOTE:
session_cache_limiter('nocache');// 清空表单
session_cache_limiter('private'); //不清空表单,只在session生效期间
session_cache_limiter('public'); //不清空表单,如同没使用session一般

可以在session_start();前加上 session_cache_limiter("private,max-age=10800");

PHP 相关文章推荐
在PHP中使用Sockets 从Usenet中获取文件
Jan 10 PHP
php日期转时间戳,指定日期转换成时间戳
Jul 17 PHP
基于PHP文件操作的详细诠释
Jun 21 PHP
php对图像的各种处理函数代码小结
Jul 08 PHP
PHP捕获Fatal error错误的方法
Jun 11 PHP
php限制文件下载速度的代码
Oct 20 PHP
YII2.0之Activeform表单组件用法实例
Jan 09 PHP
PHP模板引擎Smarty中变量的使用方法示例
Apr 11 PHP
PHP执行shell脚本运行程序不产生core文件的方法
Dec 28 PHP
PHP+Ajax实现的无刷新分页功能详解【附demo源码下载】
Jul 03 PHP
浅析php如何实现爬取数据原理
Sep 27 PHP
php实现单笔转账到支付宝功能
Oct 09 PHP
discuz Passport 通行证 整合笔记
Jun 30 #PHP
php下检测字符串是否是utf8编码的代码
Jun 28 #PHP
php GD绘制24小时柱状图
Jun 28 #PHP
php 在线打包_支持子目录
Jun 28 #PHP
php 前一天或后一天的日期
Jun 28 #PHP
js下函数般调用正则的方法附代码
Jun 22 #PHP
php的正则处理函数总结分析
Jun 20 #PHP
You might like
用PHP制作静态网站的模板框架(二)
2006/10/09 PHP
php 来访国内外IP判断代码并实现页面跳转
2009/12/18 PHP
PHP验证信用卡卡号是否正确函数
2015/05/27 PHP
JS中彻底删除JSON对象组成的数组中的元素
2020/09/22 PHP
XHTML-Strict 内允许出现的标签
2006/12/11 Javascript
jQuery中的常用事件总结
2009/12/27 Javascript
javascript Object与Function使用
2010/01/11 Javascript
jquery 打开窗口返回值实现代码
2010/03/04 Javascript
web的各种前端打印方法之jquery打印插件PrintArea实现网页打印
2013/01/09 Javascript
基于JQuery的列表拖动排序实现代码
2013/10/01 Javascript
JavaScript编程的10个实用小技巧
2014/04/18 Javascript
JavaScript通过select动态更换图片的方法
2015/03/23 Javascript
微信小程序  modal弹框组件详解
2016/10/27 Javascript
node.js中路由,中间件,ge请求和post请求的参数详解
2017/12/26 Javascript
Vue shopCart 组件开发详解
2018/01/26 Javascript
Vue作用域插槽slot-scope实例代码
2018/09/05 Javascript
vue添加axios,并且指定baseurl的方法
2018/09/19 Javascript
在vue中使用setInterval的方法示例
2019/04/16 Javascript
jQuery实现鼠标滑动切换图片
2020/05/27 jQuery
Python中列表和元组的相关语句和方法讲解
2015/08/20 Python
Django Highcharts制作图表
2016/08/27 Python
Python程序员面试题 你必须提前准备!(答案及解析)
2018/01/23 Python
详解Python安装scrapy的正确姿势
2018/06/26 Python
python数据批量写入ScrolledText的优化方法
2018/10/11 Python
pytorch 在网络中添加可训练参数,修改预训练权重文件的方法
2019/08/17 Python
Pytorch转onnx、torchscript方式
2020/05/25 Python
解决python pandas读取excel中多个不同sheet表格存在的问题
2020/07/14 Python
超酷炫 CSS3垂直手风琴菜单
2016/06/28 HTML / CSS
员工培训心得体会
2013/12/30 职场文书
红领巾心向党广播稿
2014/01/19 职场文书
注册资产评估专业求职信
2014/07/16 职场文书
2014年师德师风工作总结
2014/11/25 职场文书
幼儿园六一儿童节活动总结
2015/02/10 职场文书
单位考核聘任报告
2015/03/02 职场文书
行政答辩状范文
2015/05/21 职场文书
Mysql中的触发器定义及语法介绍
2022/06/25 MySQL