用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调用MySQL的存储过程的实现代码
Aug 12 PHP
PHP的array_diff()函数在处理大数组时的效率问题
Nov 27 PHP
深入PHP变量存储的详解
Jun 13 PHP
PHP变量的定义、可变变量、变量引用、销毁方法
Dec 20 PHP
php实现文件下载简单示例(代码实现文件下载)
Mar 10 PHP
PHP中读取文件的8种方法和代码实例
Aug 05 PHP
php创建、获取cookie及基础要点分析
Jan 26 PHP
ThinkPHP提示错误Fatal error: Allowed memory size的解决方法
Feb 12 PHP
php递归实现无限分类的方法
Jul 28 PHP
PHP7新特性foreach 修改示例介绍
Aug 26 PHP
CodeIgniter框架钩子机制实现方法【hooks类】
Aug 21 PHP
laravel 解决后端无法获取到前端Post过来的值问题
Oct 22 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多线程实现方法及用法实例详解
2015/10/26 PHP
IE FF OPERA都可用的弹出层实现代码
2009/09/29 Javascript
Javascript公共脚本库系列(一): 弹出层脚本
2011/02/24 Javascript
jquery插件制作 提示框插件实现代码
2012/08/17 Javascript
jquery小火箭返回顶部代码分享
2015/08/19 Javascript
JavaScript模拟鼠标右键菜单效果
2020/12/08 Javascript
angularjs点击图片放大实现上传图片预览
2017/02/24 Javascript
jquery插件开发之选项卡制作详解
2017/08/30 jQuery
iview给radio按钮组件加点击事件的实例
2017/09/30 Javascript
微信小程序实现点击文字页面跳转功能【附源码下载】
2017/12/12 Javascript
vue实现文件上传功能
2018/08/13 Javascript
js实现文件上传功能 后台使用MultipartFile
2018/09/08 Javascript
通过图带你深入了解vue的响应式原理
2019/06/21 Javascript
vue封装可复用组件confirm,并绑定在vue原型上的示例
2019/10/31 Javascript
Python实现将sqlite数据库导出转成Excel(xls)表的方法
2017/07/17 Python
Python制作词云的方法
2018/01/03 Python
Python进阶之尾递归的用法实例
2018/01/31 Python
Python实现将Excel转换成为image的方法
2018/10/23 Python
python实现飞机大战小游戏
2019/11/08 Python
Python如何操作office实现自动化及win32com.client的运用
2020/04/01 Python
关于Theano和Tensorflow多GPU使用问题
2020/06/19 Python
python中get和post有什么区别
2020/06/19 Python
python如何运行js语句
2020/09/09 Python
html5基础标签(html5视频标签 html5新标签用法)
2013/12/30 HTML / CSS
跨域修改iframe页面内容详解
2019/10/31 HTML / CSS
个人素质的自我评价分享
2013/12/16 职场文书
门卫工作岗位职责
2013/12/17 职场文书
马智宇结婚主持词
2014/04/01 职场文书
网络工程师自荐书范文
2014/04/01 职场文书
厨师长岗位职责范本
2014/08/25 职场文书
项目委托协议书(最新)
2014/09/13 职场文书
四年级学生期末评语
2014/12/26 职场文书
督导岗位职责
2015/02/04 职场文书
2015年全国爱耳日活动总结
2015/02/27 职场文书
导游词之平津战役纪念馆
2019/11/04 职场文书
解决linux下redis数据库overcommit_memory问题
2022/02/24 Redis