PHP表单提交错误后返回内容消失问题
2012-01-13 11:49
375 查看
PHP表单提交错误后返回内容消失问题
今日发现一个问题,用户如果提交表单后,不符合要求返回,表单信息老是没有。把我郁闷坏了,我明明记得最开始做此功能的时候,是可以恢复表单状态的。经过网上查找,原来是由于我使用了session_start函数的原因,这个函数会强制当前页面不被刷新,解决方法就是在此函数后加入 header("Cache-control: private"),同时注意在本行之前你的PHP程序不能有任何输出。还有基于session的解决方法,在session_start前加上
记录于此,省得下次忘了。这也提醒了我,该时候花个时间好好的把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网站)
- 表单提交错误后返回内容消失问题的解决方法(PHP网站)
- spring表单标签提交返回400错误问题
- Java 简单解决springmvc获取properties文件里面中文内容出现论码问题(我遇到的问题是数据提交检验时返回的错误提示出现乱码)
- php提交表单内容有单引号,mysql执行时遇见错误的解决方法。
- php+mysql 除了设置主键防止表单提交内容重复外的另一种方法
- PHP表单提交数据存入mysql的中文乱码问题
- php表单在提交之后再后退,表单的内容默认是被清空的
- 提交表单后 PHP获取提交内容的实现方法
- 1,Tomcat在提交表单时后台取不到值的问题,2,springMVC跳转页面地址错误问题
- 提交表单后 PHP获取提交内容 的方法
- 当提交表单的时候,页面上所有内容被一几乎透明的层挡住,提交完成后这个层消失
- jQuery.form.js使用ajaxSubmit()提交表单时返回中文乱码的问题
- DEDE使用AJAX无刷新提交Form表单,PHP返回结果
- php解决表单重复提交问题
- 源代码编译安装 PHP5.5.0,解决curl_exec訪问HTTPS返回502错误的问题
- ajax异步、同步问题,KindEditor ajax提交内容,ajax提交form表单 解决按两次的问题
- php表单提交问题的解决方法
- 模态对话框(window.showModalDialog),表单内容的提交、刷新父窗口的问题
- EasyUI的Form表单异步提交问题-ThinkPHP5对EasyUI异步表单不返回json