php后退一页表单内容保存实现方法


Posted in PHP onJune 17, 2012

php表单在提交之后再后退,表单的内容默认是被清空的(使用session_start的时候),
解决方法是在session_start() 之后,字符输出之前写上

header("Cache-control: private");

网页的缓存是由HTTP消息头中的“Cache-control”来控制的,常见的取值有private、no- cache、max-age、must-revalidate等,默认为private。其作用根据不同的重新浏览方式分为以下几种情况:
(1) 打开新窗口
值为private、no-cache、must-revalidate,那么打开新窗口访问时都会重新访问服务器。
而如果指定了max-age值,那么在此值内的时间里就不会重新访问服务器,例如:
Cache-control: max-age=5(表示当访问此网页后的5秒内再次访问不会去服务器)
(2) 在地址栏回车
值为private或must-revalidate则只有第一次访问时会访问服务器,以后就不再访问。
值为no-cache,那么每次都会访问。
值为max-age,则在过期之前不会重复访问。
(3) 按后退按扭
值为private、must-revalidate、max-age,则不会重访问,
值为no-cache,则每次都重复访问
(4) 按刷新按扭
  无论为何值,都会重复访问
Cache-control值为“no-cache”时,访问此页面不会在Internet临时文章夹留下页面备份。
另外,通过指定“Expires”值也会影响到缓存。例如,指定Expires值为一个早已过去的时间,那么访问此网时若重复在地址栏按回车,那么每次都会重复访问: Expires: Fri, 31 Dec 1999 16:00:00 GMT
比如:禁止页面在 IE中缓存
http响应消息头部设置:
CacheControl = no-cache
Pragma=no-cache
Expires = -1
Expires是个好东东,如果服务器上的网页经常变化,就把它设置为-1,表示立即过期。如果一个网页每天凌晨1 点更新,可以把Expires设置为第二天的凌晨1点。
当HTTP1.1服务器指定CacheControl = no-cache时,浏览器就不会缓存该网页。
旧式 HTTP 1.0 服务器不能使用 Cache-Control 标题。
所以为了向后兼容 HTTP 1.0 服务器,IE使用Pragma:no-cache 标题对 HTTP 提供特殊支持。
如果客户端通过安全连接 (https://)与服务器通讯,且服务器在响应中返回 Pragma:no-cache 标题,
则 Internet Explorer不会缓存此响应。注意:Pragma:no-cache 仅当在安全连接中使用时才防止缓存,如果在非安全页中使用,处理方式与 Expires:-1相同,该页将被缓存,但被标记为立即过期。
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消息的值,那么客户机可以接收超出超时期指定值之内的响应消息。
PHP 相关文章推荐
PHP中isset与array_key_exists的区别实例分析
Jun 02 PHP
PHP中异常处理的一些方法整理
Jul 03 PHP
PHP获取某个月最大天数(最后一天)的方法
Jul 29 PHP
PHP统计当前在线用户数实例讲解
Oct 21 PHP
thinkphp3.x中变量的获取和过滤方法详解
May 20 PHP
PHP查看SSL证书信息的方法
Sep 22 PHP
php getcwd与dirname(__FILE__)区别详解
Sep 24 PHP
PHP AjaxForm提交图片上传并显示图片源码
Nov 29 PHP
老生常谈PHP面向对象之解释器模式
May 17 PHP
Yii框架分页实现方法详解
May 20 PHP
php实现查询功能(数据访问)
May 23 PHP
PHP实现简单的计算器
Aug 28 PHP
php中使用接口实现工厂设计模式的代码
Jun 17 #PHP
php中jQuery插件autocomplate的简单使用笔记
Jun 14 #PHP
PHP的加密方式及原理
Jun 14 #PHP
php面向对象 字段的声明与使用
Jun 14 #PHP
PHP对象Object的概念 介绍
Jun 14 #PHP
深入了解PHP类Class的概念
Jun 14 #PHP
让PHP更快的提供文件下载的代码
Jun 13 #PHP
You might like
PHP函数http_build_query使用详解
2014/08/20 PHP
利用PHP函数计算中英文字符串长度的方法
2014/11/11 PHP
html读出文本文件内容
2007/01/22 Javascript
js数据验证集合、js email验证、js url验证、js长度验证、js数字验证等简单封装
2010/05/15 Javascript
JQuery 绑定select标签的onchange事件,弹出选择的值,并实现跳转、传参
2011/01/06 Javascript
jquery 添加节点的几种方法介绍
2013/09/04 Javascript
javascript判断两个IP地址是否在同一个网段的实现思路
2013/12/13 Javascript
JS中如何设置readOnly的值
2013/12/25 Javascript
JS 操作Array数组的方法及属性实例解析
2014/01/08 Javascript
Angular外部使用js调用Angular控制器中的函数方法或变量用法示例
2016/08/05 Javascript
Vue.js实现多条件筛选、搜索、排序及分页的表格功能
2020/11/24 Javascript
微信小程序 navbar实例详解
2017/05/11 Javascript
js判断文件类型大小并给出提示的实现方法
2018/01/03 Javascript
使用 Vue 绑定单个或多个 Class 名的实例代码
2018/01/08 Javascript
Vue $attrs & inheritAttr实现button禁用效果案例
2020/12/07 Vue.js
[06:35]2014DOTA2国际邀请赛 老男孩梦圆西雅图中国军团世界最强
2014/07/22 DOTA
[44:04]OG vs Mineski 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
python网络编程学习笔记(六):Web客户端访问
2014/06/09 Python
Python的subprocess模块总结
2014/11/07 Python
为python设置socket代理的方法
2015/01/14 Python
Python简单过滤字母和数字的方法小结
2019/01/09 Python
python3对拉勾数据进行可视化分析的方法详解
2019/04/03 Python
Django 响应数据response的返回源码详解
2019/08/06 Python
使用Python打造一款间谍程序的流程分析
2020/02/21 Python
浅谈pandas dataframe对除数是零的处理
2020/07/20 Python
python操作链表的示例代码
2020/09/27 Python
html5实现canvas阴影效果示例
2014/05/07 HTML / CSS
Math.round(11.5)等於多少? Math.round(-11.5)等於多少?
2015/01/27 面试题
考察现实表现材料
2014/05/19 职场文书
中国梦演讲稿3分钟
2014/08/19 职场文书
群众路线教育实践活动个人对照检查材料思想汇报(社区班子)
2014/10/06 职场文书
三好学生事迹材料
2014/12/24 职场文书
挂职锻炼个人总结
2015/03/05 职场文书
出生证明格式
2015/06/15 职场文书
了解Redis常见应用场景
2021/06/23 Redis
muduo TcpServer模块源码分析
2022/04/26 Redis