用PHP程序实现支持页面后退的两种方法

 更新时间:2008年06月30日 09:17:00   作者:  
在开发过程中,往往因为表单出错而返回页面的时候填写的信息都不见了,为了支持页面回跳,可以通过两种方法实现。
  第一,使用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");

相关文章

  • 浅谈Eclipse PDT调试PHP程序

    浅谈Eclipse PDT调试PHP程序

    本文主要介绍的是eclipse和pdt的安装、调试以及xdebug的配置方法,并用eclipse pdt进行断点调试PHP代码。
    2014-06-06
  • php截取中文字符串函数实例

    php截取中文字符串函数实例

    这篇文章主要介绍了php截取中文字符串函数,实例分析了php针对中文字符串操作的技巧,注意utf-8与gb2312编码的转换问题,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-02-02
  • PHP实现数据库统计时间戳按天分组输出数据的方法

    PHP实现数据库统计时间戳按天分组输出数据的方法

    这篇文章主要介绍了PHP实现数据库统计时间戳按天分组输出数据的方法,涉及php基于时间的运算与数据库查询相关操作技巧,需要的朋友可以参考下
    2017-10-10
  • 使用URL传输SESSION信息

    使用URL传输SESSION信息

    这篇文章主要介绍了使用URL传输SESSION信息的相关资料,需要的朋友可以参考下
    2015-07-07
  • PHP同时连接多个mysql数据库示例代码

    PHP同时连接多个mysql数据库示例代码

    这篇文章主要介绍了PHP同时连接多个mysql数据库的具体实现,需要的朋友可以参考下
    2014-03-03
  • PHP缓存工具XCache安装与使用方法详解

    PHP缓存工具XCache安装与使用方法详解

    这篇文章主要介绍了PHP缓存工具XCache安装与使用方法,较为详细的分析了缓存工具XCache在Windows及Linux平台安装与Xcache操作封装类实例,需要的朋友可以参考下
    2018-04-04
  • PHP+Mysql实现多关键字与多字段生成SQL语句的函数

    PHP+Mysql实现多关键字与多字段生成SQL语句的函数

    这篇文章主要介绍了PHP+Mysql实现多关键字与多字段生成SQL语句的函数,涉及字符串与数组的操作,是构造SQL语句非常实用的技巧,需要的朋友可以参考下
    2014-11-11
  • php数组使用规则分析

    php数组使用规则分析

    这篇文章主要介绍了php数组使用规则,实例分析了php中数组的用法,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-02-02
  • 服务器变量 $_SERVER 的深入解析

    服务器变量 $_SERVER 的深入解析

    本篇文章是对服务器变量$_SERVER进行了详细的分析介绍,需要的朋友参考下
    2013-07-07
  • 详解PHP序列化反序列化的方法

    详解PHP序列化反序列化的方法

    这篇文章主要介绍了PHP序列化反序列化的方法,在一些开源的php源代码中,我们经常看到一些配置文件里面存放的是一些类似带有格式的变量名称和值,想知道这是为什么,请阅读下文
    2015-10-10

最新评论