用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编写PDF文档生成器
Oct 09 PHP
php strcmp使用说明
Apr 22 PHP
php curl 伪造IP来源的实例代码
Nov 01 PHP
PHP函数microtime()用法与说明
Dec 04 PHP
ThinkPHP3.1.3版本新特性概述
Jun 19 PHP
Laravel框架路由配置总结、设置技巧大全
Sep 03 PHP
php通过隐藏表单控件获取到前两个页面的url
Sep 09 PHP
PHP的拦截器实例分析
Nov 03 PHP
PHP的数组中提高元素查找与元素去重的效率的技巧解析
Mar 03 PHP
浅谈PHP中pack、unpack的详细用法
Mar 12 PHP
Laravel关系模型指定条件查询方法
Oct 10 PHP
php加速缓存器opcache,apc,xcache,eAccelerator原理与配置方法实例分析
Mar 02 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去除数组中重复的元素并按键名排序函数
2008/08/18 PHP
php中记录用户访问过的产品,在cookie记录产品id,id取得产品信息
2011/05/04 PHP
探讨PHP使用eAccelerator的API开发详解
2013/06/09 PHP
php+js iframe实现上传头像界面无跳转
2014/04/29 PHP
PHP冒泡算法详解(递归实现)
2014/11/10 PHP
php中mkdir()函数的权限问题分析
2016/09/24 PHP
一个实用的php验证码类
2017/07/06 PHP
PHP+Ajax实现上传文件进度条动态显示进度功能
2018/06/04 PHP
微信公众号开发之获取位置信息php代码
2018/06/13 PHP
PHP匿名函数(闭包函数)详解
2019/03/22 PHP
javascript document.images实例
2008/05/27 Javascript
在JavaScript中,为什么要尽可能使用局部变量?
2009/04/06 Javascript
基于Jquery的简单图片切换效果
2011/01/06 Javascript
实用框架(iframe)操作代码
2014/10/23 Javascript
JS控制静态页面传递参数并获取参数应用
2016/08/10 Javascript
jQuery遍历节点树方法分析
2016/09/08 Javascript
微信小程序 swiper组件详解及实例代码
2016/10/25 Javascript
angular+ionic 的app上拉加载更新数据实现方法
2017/01/16 Javascript
神级程序员JavaScript300行代码搞定汉字转拼音
2017/05/20 Javascript
angularjs $http实现form表单提交示例
2017/06/09 Javascript
信息滚动效果的实例讲解
2017/09/18 Javascript
解读vue生成的文件目录结构及说明
2017/11/27 Javascript
angular 未登录状态拦截路由跳转的方法
2018/10/09 Javascript
vue开发中遇到的问题总结
2020/04/07 Javascript
JavaScript实现alert弹框效果
2020/11/19 Javascript
[01:00:30]完美世界DOTA2联赛循环赛 Inki vs Matador BO2第二场 10.31
2020/11/02 DOTA
python的pdb调试命令的命令整理及实例
2017/07/12 Python
django3.02模板中的超链接配置实例代码
2020/02/04 Python
django admin 添加自定义链接方式
2020/03/11 Python
python设置表格边框的具体方法
2020/07/17 Python
纯CSS实现颜色渐变效果(包含环形渐变、线性渐变、彩虹效果等)
2014/05/07 HTML / CSS
JBL澳大利亚官方商店:扬声器、耳机和音响系统
2018/05/24 全球购物
IMPORT的选项IGNORE有什么作用?缺省是什么设置?
2015/09/17 面试题
银行办理业务介绍信
2014/01/18 职场文书
2014年学生会工作总结
2014/11/07 职场文书
Python基本的内置数据类型及使用方法
2022/04/13 Python