用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 相关文章推荐
第1次亲密接触PHP5(1)
Oct 09 PHP
PHP个人网站架设连环讲(三)
Oct 09 PHP
php curl选项列表(超详细)
Jul 01 PHP
PHP 提取图片img标记中的任意属性的简单实例
Dec 10 PHP
简单解决新浪SAE无法上传文件的问题
May 13 PHP
phpStudy访问速度慢和启动失败的解决办法
Nov 19 PHP
php实现简单爬虫的开发
Mar 28 PHP
PHP+Ajax 检测网络是否正常实例详解
Dec 16 PHP
php及codeigniter使用session-cookie的方法(详解)
Apr 06 PHP
PHP将身份证正反面两张照片合成一张图片的代码
Apr 08 PHP
php5对象复制、clone、浅复制与深复制实例详解
Aug 14 PHP
php面向对象重点知识分享
Sep 27 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
C#静态方法与非静态方法实例分析
2014/09/22 PHP
浅析php中array_map和array_walk的使用对比
2016/11/20 PHP
JavaScript高级程序设计 阅读笔记(二十) js错误处理
2012/08/14 Javascript
javascript中验证大写字母、数字和中文
2014/01/15 Javascript
使用jQuery重置(reset)表单的方法
2014/05/05 Javascript
javascript实现获取字符串hash值
2015/05/10 Javascript
AngularJs自定义服务之实现签名和加密
2016/08/02 Javascript
js 打开新页面在屏幕中间的实现方法
2016/11/02 Javascript
Jquery删除css属性的简单方法
2016/12/04 Javascript
Angular企业级开发——MVC之控制器详解
2017/02/20 Javascript
bootstrap折叠调用collapse()后data-parent不生效的快速解决办法
2017/02/23 Javascript
JS基于面向对象实现的多个倒计时器功能示例
2017/02/28 Javascript
浅谈es6语法 (Proxy和Reflect的对比)
2017/10/24 Javascript
webpack的CSS加载器的使用
2018/09/11 Javascript
详解angularjs跨页面传参遇到的一些问题
2018/11/01 Javascript
nodejs中方法和模块用法示例
2018/12/24 NodeJs
vue页面切换项目实现转场动画的方法
2019/11/12 Javascript
Vue中的nextTick作用和几个简单的使用场景
2021/01/25 Vue.js
[26:50]2018完美盛典DOTA2表演赛
2018/12/17 DOTA
[01:07:20]DOTA2-DPC中国联赛 正赛 Dynasty vs XG BO3 第二场 2月2日
2021/03/11 DOTA
Python3中的真除和Floor除法用法分析
2016/03/16 Python
Python中使用插入排序算法的简单分析与代码示例
2016/05/04 Python
python如何给字典的键对应的值为字典项的字典赋值
2019/07/05 Python
python如何实现异步调用函数执行
2019/07/08 Python
python+selenium 鼠标事件操作方法
2019/08/24 Python
Python flask框架端口失效解决方案
2020/06/04 Python
Python代码需要缩进吗
2020/07/01 Python
CSS实现半透明边框与多重边框的场景分析
2019/11/13 HTML / CSS
声明struct x1 { . . . }; 和typedef struct { . . . }x2;有什么不同
2012/06/02 面试题
Order by的几种用法
2013/06/16 面试题
优秀党员转正的自我评价
2013/10/06 职场文书
老师的检讨书
2014/02/23 职场文书
离婚协议书格式
2014/11/21 职场文书
暑期社会实践个人总结
2015/03/06 职场文书
python调试工具Birdseye的使用教程
2021/05/25 Python
使用python绘制分组对比柱状图
2022/04/21 Python