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

本文介绍了如何使用PHP控制HTTP头的Cache-Control来管理页面缓存,以处理表单提交后浏览器后退按钮导致的表单清空问题。通过设置'private'或'nocache'模式,可以实现不同缓存策略。同时,文章还探讨了session_cache_limiter函数的作用,以及如何结合session来避免表单数据丢失。
摘要由CSDN通过智能技术生成

第一,使用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实现将浏览历史页面网址保存到cookie的方法thinkphp浏览历史功能实现方法php阻止页面后退的方法分享php后退一页表单内容保存实现方法php网页后退不再出现过期PHP实现的memcache环形队列类实例php基于双向循环队列实现历史记录的前进后退等功能

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值