今日发现一个问题,用户如果提交表单后,不符合要求返回,表单信息老是没有。把我郁闷坏了,我明明记得最开始做此功能的时候,是可以恢复表单状态的。经过网上查找,原来是由于我使用了session_start函数的原因,这个函数会强制当前页面不被刷新,解决方法就是在此函数后加入 header("Cache-control: private"),同时注意在本行之前你的PHP程序不能有任何输出。
还有基于session的解决方法,在session_start前加上
session_cache_limiter( 'nocache' );
session_cache_limiter( 'private' );
session_cache_limiter( 'public' );
|
不过从别人博客上看到如果直接设置session会使seesion出现cache的现象,从而导致当你应用到session的地方会出现session信息不能更新的问题。
记录于此,省得下次忘了。这也提醒了我,该时候花个时间好好的把PHP手册当教科书一样从头到尾最少看一遍。
补充:
第一,使用Header方法设置消息头Cache-control
1 header('Cache-control: private, must-revalidate'); //支持页面回跳
第二,使用session_cache_limiter方法
//注意要写在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消息的值,那么客户机可以接收超出超时期指定值之内的响应消息。
zz:http://www.cnblogs.com/17too/archive/2010/07/03/1770679.html
分享到:
相关推荐
表单提交错误后返回内容消失怎么办呐,今天就来分析解决一下这个问题。 状况概述: 做填写表单信息提交的时候会碰到一个问题就是当用户填写并提交表单后,程序判断不符合要求并返回,返回之后之前填写的表单信息会被...
php curl模仿form表单提交图片或文件 用的tp5做的例子
常用的表单提交判断函数常用的表单提交判断函数常用的表单提交判断函数常用的表单提交判断函数常用的表单提交判断函数常用的表单提交判断函数常用的表单提交判断函数常用的表单提交判断函数
PHP表单提交--之复选框
【日报自动化】提交表单后返回的json内容
PHP表单提交开发实例
表单提交验证类表单提交验证类表单提交验证类表单提交验证类
开发完php提交表单后,当刷新页面的时候,php会自动提交,本文档提供了防止提交的方法
php snoopy 模拟表单提交 数据抓取
提交表单后提交禁用提交按钮,防止重复提交.
弹出层表单提交数据完美解决弹出层表单提交数据完美解决弹出层表单提交数据完美解决弹出层表单提交数据完美解决
js验证表单大全,用JS控制表单提交 ,javascript提交表单
a.aspx后台提交表单,b.aspx接收表单(根据input的name获得值)
php提交表单到mysql数据库实例,新手练习用的,写好后不想删掉,共享出来给需要练习的朋友。顺便赚点分。 数据库可以执行下面语句创建: create table links (name varchar(255) not null default '', address ...
PHP+Jquery+AJAX POST,GET提交表单并接收返回
用iframe提交表单,主要是将表单提交到iframe中,可实现无刷新提交。 html页面: <iframe name="FORMSUBMIT" width="1" height="1" ></iframe> <form action="login....
本文实例讲述了JS提交form表单。分享给大家供大家参考,具体如下: 一、javascript 页面加裁时自动提交表单: Form表单: <form method="post" id="myform" action="a.php"> <input type="submit" value=...
php无刷新提交表单
下面小编就为大家带来一篇提交表单后 PHP获取提交内容的实现方法。小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧