用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 相关文章推荐
PHP5中MVC结构学习
Oct 09 PHP
MySQL中create table语句的基本语法是
Jan 15 PHP
php中在PDO中使用事务(Transaction)
May 14 PHP
ThinkPHP实现批量删除数据的代码实例
Jul 02 PHP
Windows下安装PHP单元测试环境PHPUnit图文教程
Oct 24 PHP
php上传大文件失败的原因及应对策略
Oct 20 PHP
详解PHP的Laravel框架中Eloquent对象关系映射使用
Feb 26 PHP
用PHP将Unicode 转化为UTF-8的实现方法(推荐)
Feb 08 PHP
php使用ftp实现文件上传与下载功能
Jul 21 PHP
thinkPHP框架实现的短信接口验证码功能示例
Jun 20 PHP
Laravel框架数据库迁移操作实例详解
Apr 06 PHP
关于Anemometer图形化显示MySQL慢日志的工具搭建及使用的详细介绍
Jul 13 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
BBS(php & mysql)完整版(四)
2006/10/09 PHP
PHP的autoload自动加载机制使用说明
2010/12/28 PHP
CodeIgniter上传图片成功的全部过程分享
2013/08/12 PHP
javascript生成随机数的方法
2014/05/16 Javascript
JQuery.Ajax()的data参数类型实例详解
2015/11/20 Javascript
Javascript生成带参数的二维码示例
2016/10/10 Javascript
浅析JavaScript动画模拟拖拽原理
2016/12/09 Javascript
ES6新特性之函数的扩展实例详解
2017/04/01 Javascript
vue中mint-ui环境搭建详细介绍
2017/04/06 Javascript
Node.js 多线程完全指南总结
2019/03/27 Javascript
vue实现标签云效果的方法详解
2019/08/28 Javascript
js实现贪吃蛇小游戏(加墙)
2020/07/31 Javascript
windows下Python实现将pdf文件转化为png格式图片的方法
2017/07/21 Python
python实现分页效果
2017/10/25 Python
Python3多进程 multiprocessing 模块实例详解
2018/06/11 Python
Python判断变量名是否合法的方法示例
2019/01/28 Python
PyQt5 实现字体大小自适应分辨率的方法
2019/06/18 Python
对pytorch中的梯度更新方法详解
2019/08/20 Python
对pytorch的函数中的group参数的作用介绍
2020/02/18 Python
Pycharm中配置远程Docker运行环境的教程图解
2020/06/11 Python
通过代码简单了解django model序列化作用
2020/11/12 Python
HTML5中的Article和Section元素认识及使用
2013/03/22 HTML / CSS
英国户外服装品牌:Craghoppers
2019/04/25 全球购物
一道写SQL的面试题和答案
2013/11/19 面试题
廉洁教育学习材料
2014/05/19 职场文书
护士节策划方案
2014/05/19 职场文书
幼儿园户外活动总结
2014/07/04 职场文书
医院领导班子整改方案
2014/10/01 职场文书
诉讼授权委托书
2014/10/15 职场文书
解除租房协议书
2014/12/03 职场文书
学生检讨书怎么写
2015/05/07 职场文书
小学数学教学反思范文
2016/02/16 职场文书
《乘法分配律》教学反思
2016/02/24 职场文书
python基础之停用词过滤详解
2021/04/21 Python
css position fixed 左右双定位的实现代码
2021/04/29 HTML / CSS
k8s部署redis cluster集群的实现
2021/06/24 Redis