用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 随机排序广告的实现代码
May 09 PHP
php设计模式 Visitor 访问者模式
Jun 28 PHP
PHP连接MongoDB示例代码
Sep 06 PHP
php实现读取超大文件的方法
Jul 28 PHP
php cookie中点号(句号)自动转为下划线问题
Oct 21 PHP
php输出金字塔的2种实现方法
Dec 16 PHP
php用户注册时常用的检验函数实例总结
Dec 22 PHP
推荐5款跨平台的PHP编辑器
Dec 25 PHP
简单谈谈PHP中的include、include_once、require以及require_once语句
Apr 23 PHP
PHP的图像处理实例小结【文字水印、图片水印、压缩图像等】
Dec 20 PHP
PHP执行系统命令函数实例讲解
Mar 03 PHP
Laravel中Kafka的使用详解
Mar 24 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
PHP5+UTF8多文件上传类
2008/10/17 PHP
PHP对字符串的递增运算分析
2010/08/08 PHP
php中并发读写文件冲突的解决方案
2013/10/25 PHP
php猜单词游戏
2015/09/29 PHP
Symfony2框架创建项目与模板设置实例详解
2016/03/17 PHP
thinkPHP自动验证、自动添加及表单错误问题分析
2016/10/17 PHP
PHP使用strrev翻转中文乱码问题的解决方法
2017/01/13 PHP
Thinkphp事务操作实例(推荐)
2017/04/01 PHP
Windows服务器中PHP如何安装redis扩展
2019/09/27 PHP
javascript 获取图片颜色
2009/04/05 Javascript
JQuery 1.3.2以上版本中出现pareseerror错误的解决方法
2011/01/11 Javascript
javascript学习笔记(六)数据类型和JSON格式
2014/10/08 Javascript
jQuery中remove()方法用法实例
2014/12/25 Javascript
基于Jquery+div+css实现弹出登录窗口(代码超简单)
2015/10/27 Javascript
Javascript highcharts 饼图显示数量和百分比实例代码
2016/12/06 Javascript
BootStrap Fileinput初始化时的一些参数
2016/12/30 Javascript
将鼠标焦点定位到文本框最后(代码分享)
2017/01/11 Javascript
vue axios 二次封装的示例代码
2017/12/08 Javascript
Vue 创建组件的两种方法小结(必看)
2018/02/23 Javascript
聊聊JS动画库 Velocity.js的使用
2018/03/13 Javascript
Vue $emit $refs子父组件间方法的调用实例
2018/09/12 Javascript
react用Redux中央仓库实现一个todolist
2019/09/29 Javascript
Python subprocess模块常见用法分析
2018/06/12 Python
Python基于最小二乘法实现曲线拟合示例
2018/06/14 Python
python+opencv实现阈值分割
2018/12/26 Python
使用Python脚本zabbix自定义key监控oracle连接状态
2019/08/28 Python
Python高级property属性用法实例分析
2019/11/19 Python
python 安装库几种方法之cmd,anaconda,pycharm详解
2020/04/08 Python
Pycharm修改python路径过程图解
2020/05/22 Python
介绍一下Transact-SQL中SPACE函数的用法
2015/09/01 面试题
大学生四年生活自我鉴定
2013/11/21 职场文书
承认错误的检讨书
2014/01/30 职场文书
小学毕业感言50字
2014/02/16 职场文书
群众路线领导班子四风对照检查材料
2014/09/27 职场文书
写自招自荐信的绝招!
2019/04/19 职场文书
原生JavaScript实现简单五子棋游戏
2021/06/28 Javascript