用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 相关文章推荐
1.PHP简介
Oct 09 PHP
PHP将DateTime对象转化为友好时间显示的实现代码
Sep 20 PHP
mysqli_set_charset和SET NAMES使用抉择及优劣分析
Jan 13 PHP
解析php中如何直接执行SHELL
Jun 28 PHP
php动态生成函数示例
Mar 21 PHP
php递归创建目录的方法
Feb 02 PHP
PHP超牛逼无限极分类生成树方法
May 11 PHP
php is_writable判断文件是否可写实例代码
Oct 13 PHP
购物车实现的几种方式优缺点对比
May 02 PHP
PHP获取远程http或ftp文件的md5值的方法
Apr 15 PHP
PHP单例模式实例分析【防继承,防克隆操作】
May 22 PHP
不常用但很实用的PHP预定义变量分析
Jun 25 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之第二天
2006/10/09 PHP
简体中文转换为繁体中文的PHP函数
2006/10/09 PHP
php实现的DateDiff和DateAdd时间函数代码分享
2014/08/16 PHP
PHP 计算两个特别大的整数实例代码
2018/05/07 PHP
PHP反射基础知识回顾
2020/09/10 PHP
javascript js cookie的存储,获取和删除
2007/12/29 Javascript
JavaScript Object的extend是一个常用的功能
2009/12/02 Javascript
ScrollDown的基本操作示例
2013/06/09 Javascript
js常用自定义公共函数汇总
2014/01/15 Javascript
浅谈JavaScript 的执行顺序
2015/08/07 Javascript
BootStrap selectpicker
2016/06/20 Javascript
详解angular2实现ng2-router 路由和嵌套路由
2017/03/24 Javascript
微信小程序 http请求的session管理
2017/06/07 Javascript
AngularJS 打开新的标签页实现代码
2017/09/07 Javascript
JavaScript中常见内置函数用法示例
2018/05/14 Javascript
解析vue data不可以使用箭头函数问题
2018/07/03 Javascript
微信小程序实现红包功能(后端PHP实现逻辑)
2018/07/11 Javascript
详解小程序原生使用ES7 async/await语法
2018/08/06 Javascript
vue中slot(插槽)的介绍与使用
2018/11/12 Javascript
Vue + Elementui实现多标签页共存的方法
2019/06/12 Javascript
Typescript 中的 interface 和 type 到底有什么区别详解
2019/06/18 Javascript
原生js实现轮播图特效
2020/05/04 Javascript
django 发送邮件和缓存的实现代码
2018/07/18 Python
python opencv实现图片旋转矩形分割
2018/07/26 Python
python 梯度法求解函数极值的实例
2019/07/10 Python
Django自定义用户表+自定义admin后台中的字段实例
2019/11/18 Python
python实现图像拼接
2020/03/05 Python
Python调用shell cmd方法代码示例解析
2020/06/18 Python
python中get和post有什么区别
2020/06/19 Python
Algenist奥杰尼官网:微藻抗衰老护肤品牌
2017/07/15 全球购物
Vilebrequin美国官方网上商店:法国豪华泳装品牌
2020/02/22 全球购物
公积金接收函格式
2015/01/30 职场文书
给校长的建议书作文300字
2015/09/14 职场文书
好段摘抄大全(48句)
2019/08/08 职场文书
《思路决定出路》读后感3篇
2019/12/11 职场文书
Python使用Kubernetes API访问集群
2021/05/30 Python