用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 相关文章推荐
模仿OSO的论坛(三)
Oct 09 PHP
PHP 图片上传实现代码 带详细注释
Apr 29 PHP
Zend Studio (eclipse)使用速度优化方法
Mar 23 PHP
PHP模块 Memcached功能多于Memcache
Jun 14 PHP
关于PHP堆栈与列队的学习
Jun 21 PHP
对PHP新手的一些建议(PHP学习经验总结)
Aug 20 PHP
Codeigniter控制器controller继承问题实例分析
Jan 19 PHP
php版交通银行网银支付接口开发入门教程
Sep 26 PHP
thinkphp整合微信支付代码分享
Nov 24 PHP
PHP那些琐碎的知识点(整理)
May 20 PHP
对laravel的session获取与存取方法详解
Oct 08 PHP
laravel中Redis队列监听中断的分析
Sep 14 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/07/17 PHP
php版微信小店调用api示例代码
2016/11/12 PHP
js报$ is not a function 的问题的解决方法
2014/01/20 Javascript
javascript中replace( )方法的使用
2015/04/24 Javascript
jquery 实现回车登录详解及实例代码
2016/10/23 Javascript
AngularJs ng-change事件/指令的用法小结
2017/11/01 Javascript
详解vue项目的构建,打包,发布全过程
2017/11/23 Javascript
webpack v4 从dev到prd的方法
2018/04/02 Javascript
jQuery扩展方法实现Form表单与Json互相转换的实例代码
2018/09/05 jQuery
JS判断数组里是否有重复元素的方法小结
2019/05/21 Javascript
使用异步controller与jQuery实现卷帘式分页
2019/06/18 jQuery
a标签调用js的方法总结
2019/09/05 Javascript
jQuery实现数字华容道小游戏(实例代码)
2020/01/16 jQuery
使用 Vue-TCB 快速在 Vue 应用中接入云开发的方法
2020/02/10 Javascript
JS加载解析Markdown文档过程详解
2020/05/19 Javascript
js实现淘宝浏览商品放大镜功能
2020/10/28 Javascript
python探索之BaseHTTPServer-实现Web服务器介绍
2017/10/28 Python
Python 用Redis简单实现分布式爬虫的方法
2017/11/23 Python
在Pycharm中设置默认自动换行的方法
2019/01/16 Python
python如何爬取网站数据并进行数据可视化
2019/07/08 Python
10个Python面试常问的问题(小结)
2019/11/20 Python
python操作yaml说明
2020/04/08 Python
PyInstaller运行原理及常用操作详解
2020/06/13 Python
详解基于Scrapy的IP代理池搭建
2020/09/29 Python
HTML5 Canvas绘制圆点虚线实例
2015/01/01 HTML / CSS
Html5新标签datalist实现输入框与后台数据库数据的动态匹配
2017/05/18 HTML / CSS
Html5页面二次分享的实现
2018/07/30 HTML / CSS
英国百安居装饰建材网上超市:B&Q
2016/09/13 全球购物
大四本科生的自我评价
2013/12/30 职场文书
运动会100米解说词
2014/01/23 职场文书
2014乡党委副书记党建工作汇报材料
2014/11/02 职场文书
业务员年终工作总结2015
2015/05/28 职场文书
python基于scrapy爬取京东笔记本电脑数据并进行简单处理和分析
2021/04/14 Python
nginx部署多前端项目的几种方法
2021/05/25 Servers
唤醒紫霞仙子,携手再游三界!大话手游X《大话西游》电影合作专属剧情任务
2022/04/03 其他游戏
Java存储没有重复元素的数组
2022/04/29 Java/Android