表单提交错误后返回内容消失问题的解决方法(PHP网站)


Posted in PHP onOctober 20, 2015

表单提交错误后返回内容消失怎么办呐,今天就来分析解决一下这个问题。

状况概述:

做填写表单信息提交的时候会碰到一个问题就是当用户填写并提交表单后,程序判断不符合要求并返回,返回之后之前填写的表单信息会被清空了的情况。如果填写的信息量少还无所谓,如果填写的信息量比较多,这会直接打击到填写信息的人的良好心情。因此解决表单提交错误返回后填写的内容消失的问题是一个提高用户体验度的迫在眉睫的问题。
对于这种问题,综合总结了大概有下面几种情况:
(1)页面使用了session_start函数,这个函数有个特点就是会强制当前页面不被刷新,解决方法就是在此函数后加上下面这段代码:

header("Cache-control:private");//注意在本行之前你的PHP程序不能有任何输出

还有其他的几种解决方法是在session_start前加上

session_cache_limiter('nocache'); //清空表单 
session_cache_limiter('private'); //不清空表单,只在session生效期间 
session_cache_limiter('public'); //不清空表单,如同没使用session一般

上面的设置session会使seesion出现缓存的现象,从而导致当你应用到session的地方会出现session信息不能更新的问题,鉴于这个原因,本文提出下面几种其他的解决办法。
 (2)使用Header方法设置消息头Cache-control,在页面加入下段代码:
header('Cache-control: private, must-revalidate');  //支持页面回跳,注意本行之前不能有任何输出
(3)使用session_cache_limiter方法,在页面加入下段代码:
session_cache_limiter('private, must-revalidate'); //注意要写在session_start方法之前
下面对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消息的值,那么客户机可以接收超出超时期指定值之内的响应消息。

读完这篇文章大家再遇到类似问题就可以彻底解决了,特别提醒的是这个解决方法仅针对php网站,可记住了。

PHP 相关文章推荐
PHP中对数据库操作的封装
Oct 09 PHP
php面向对象全攻略 (八)重载新的方法
Sep 30 PHP
PHP版网站缓存加快打开速度的方法分享
Jun 03 PHP
PHP修改session_id示例代码
Jan 08 PHP
浅析PHP的静态成员函数效率更高的原因
Jun 13 PHP
Yii快速入门经典教程
Dec 28 PHP
如何通过View::first使用Laravel Blade的动态模板详解
Sep 21 PHP
mongodb和php的用法详解
Mar 25 PHP
PHP基于swoole多进程操作示例
Aug 12 PHP
php探针不显示内存解决方法
Sep 17 PHP
php实现对文件压缩简单的方法
Sep 29 PHP
基于laravel Request的所有方法详解
Sep 29 PHP
php的mail函数发送UTF-8编码中文邮件时标题乱码的解决办法
Oct 20 #PHP
PHP页面转UTF-8中文编码乱码的解决办法
Oct 20 #PHP
php限制文件下载速度的代码
Oct 20 #PHP
php获取远程文件大小
Oct 20 #PHP
php根据日期或时间戳获取星座信息和生肖等信息
Oct 20 #PHP
php生成验证码函数
Oct 20 #PHP
php文件上传你必须知道的几点
Oct 20 #PHP
You might like
PHP网页游戏学习之Xnova(ogame)源码解读(十五)
2014/06/30 PHP
基于thinkPHP框架实现留言板的方法
2016/10/17 PHP
PHP连续签到功能实现方法详解
2019/12/04 PHP
自动生成文章摘要的代码[JavaScript 版本]
2007/03/20 Javascript
Javascript 阻止javascript事件冒泡,获取控件ID值
2009/06/27 Javascript
jQuery使用动态渲染表单功能完成ajax文件下载
2013/01/15 Javascript
javascript如何创建表格(javascript绘制表格的二种方法)
2013/12/10 Javascript
利用JQuery和Servlet实现跨域提交请求示例分享
2014/02/12 Javascript
纯js实现遮罩层效果原理分析
2014/05/27 Javascript
node+express+jade制作简单网站指南
2014/11/26 Javascript
jQuery实现视频作为全屏幕背景
2014/12/18 Javascript
JavaScript实现自动生成网页元素功能(按钮、文本等)
2015/11/21 Javascript
详解javascript中原始数据类型Null和Undefined
2015/12/17 Javascript
jQuery Validation PlugIn的使用方法详解
2015/12/18 Javascript
JavaScript实现斗地主游戏的思路
2016/02/29 Javascript
jQuery简单实现上下,左右滑动的方法
2016/06/01 Javascript
JavaScript和JQuery获取DIV值的方法示例
2017/03/07 Javascript
Vue中使用vee-validate表单验证的方法
2018/05/09 Javascript
vue 开发企业微信整合案例分析
2019/12/02 Javascript
解决vue做详情页跳转的时候使用created方法 数据不会更新问题
2020/07/24 Javascript
JavaScript实现拖拽和缩放效果
2020/08/24 Javascript
Vue组件简易模拟实现购物车
2020/12/21 Vue.js
js实现随机点名
2021/01/19 Javascript
Python模拟鼠标点击实现方法(将通过实例自动化模拟在360浏览器中自动搜索python)
2017/08/23 Python
python实现求最长回文子串长度
2018/01/22 Python
python安装dlib库报错问题及解决方法
2020/03/16 Python
美国折扣地毯销售网站:Rugs.com
2020/03/27 全球购物
房地产员工找工作的自我评价
2013/11/15 职场文书
应届毕业生求职自荐书
2014/01/03 职场文书
单位办理社保介绍信
2014/01/10 职场文书
群众路线教育实践活动批评与自我批评
2014/09/15 职场文书
营销与策划实训报告
2014/11/05 职场文书
预备党员自我评价范文
2015/03/04 职场文书
2015国庆节66周年演讲稿
2015/03/20 职场文书
浪漫的婚礼主持词
2015/06/30 职场文书
利用python进行数据加载
2021/06/20 Python