用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 相关文章推荐
我的论坛源代码(一)
Oct 09 PHP
thinkphp连贯操作实例分析
Nov 22 PHP
PHP实现Javascript中的escape及unescape函数代码分享
Feb 10 PHP
PHP中的类型约束介绍
May 11 PHP
Zend Framework教程之路由功能Zend_Controller_Router详解
Mar 07 PHP
PHP的Yii框架中移除组件所绑定的行为的方法
Mar 18 PHP
smarty学习笔记之常见代码段用法总结
Mar 19 PHP
Yii2使用dropdownlist实现地区三级联动功能的方法
Jul 18 PHP
php 删除指定文件夹的实例讲解
Jul 25 PHP
PHP删除数组中指定下标的元素方法
Feb 03 PHP
laravel实现上传图片的两种方式小结
Oct 12 PHP
详解Laravel服务容器的优势
May 29 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中其实也可以用方法链
2011/11/10 PHP
phpmailer发送gmail邮件实例详解
2013/06/24 PHP
PHP实现检测客户端是否使用代理服务器及其匿名级别
2015/01/07 PHP
php表单文件iframe异步上传实例讲解
2017/07/26 PHP
asp函数split()对应php函数explode()
2019/02/27 PHP
写出更好的JavaScript程序之undefined篇(中)
2009/11/23 Javascript
javascript列表框操作函数集合汇总
2013/11/28 Javascript
JQuery的ON()方法支持的所有事件罗列
2015/02/28 Javascript
探讨JavaScript标签位置的存放与功能有无关系
2016/01/15 Javascript
javascript实现tab响应式切换特效
2016/01/29 Javascript
JavaScript中使用数组方法汇总
2016/02/16 Javascript
基于jQuery实现瀑布流页面
2017/04/11 jQuery
微信小程序实现自定义picker选择器弹窗内容
2020/05/26 Javascript
详解基于iview-ui的导航栏路径(面包屑)配置
2019/02/22 Javascript
微信小程序实现锚点功能
2019/11/20 Javascript
python机器学习之贝叶斯分类
2018/03/26 Python
基于循环神经网络(RNN)的古诗生成器
2018/03/26 Python
Linux下python3.6.1环境配置教程
2018/09/26 Python
python和mysql交互操作实例详解【基于pymysql库】
2019/06/04 Python
python opencv实现证件照换底功能
2019/08/19 Python
python2与python3爬虫中get与post对比解析
2019/09/18 Python
python异常处理、自定义异常、断言原理与用法分析
2020/03/23 Python
Python实现上下文管理器的方法
2020/08/07 Python
python3 googletrans超时报错问题及翻译工具优化方案 附源码
2020/12/23 Python
CSS3教程(3):border-color网页边框色彩
2009/04/02 HTML / CSS
html5超简单的localStorage实现记住密码的功能实现
2017/09/07 HTML / CSS
大唐电信科技股份有限公司java工程师面试经历
2016/12/09 面试题
接口中的方法可以是abstract的吗
2015/07/23 面试题
数据库基础的一些面试题
2012/02/25 面试题
毕业自荐信
2013/12/16 职场文书
设计专业自荐信
2014/06/19 职场文书
志愿者爱心公益活动策划方案
2014/09/15 职场文书
营业用房租赁协议书
2014/11/26 职场文书
2015年信息中心工作总结
2015/05/25 职场文书
Spring实现内置监听器
2021/07/09 Java/Android
B站评分公认最好看的动漫,你的名字评分9.9,第六备受喜欢
2022/03/18 日漫