表单提交错误后返回内容消失问题的解决方法(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 相关文章推荐
ecshop 2.72如何修改后台访问地址
Mar 03 PHP
php使用MySQL保存session会话的方法
Jun 18 PHP
php实现点击可刷新验证码
Nov 07 PHP
PHP实现图片不变型裁剪及图片按比例裁剪的方法
Jan 14 PHP
php使用高斯算法实现图片的模糊处理功能示例
Nov 11 PHP
php实现的pdo公共类定义与用法示例
Jul 19 PHP
Laravel框架中Blade模板的用法示例
Aug 30 PHP
PHP设计模式之单例模式原理与实现方法分析
Apr 25 PHP
php微信开发之关注事件
Jun 14 PHP
php中对象引用和复制实例分析
Aug 14 PHP
关于laravel 数据库迁移中integer类型是无法指定长度的问题
Oct 09 PHP
PHP isset empty函数相关面试题及解析
Dec 11 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 session 错误
2009/05/21 PHP
PHP页面间参数传递的四种方法详解
2013/06/09 PHP
php获取qq用户昵称和在线状态(实例分析)
2013/10/27 PHP
php实现监听事件
2013/11/06 PHP
PHP实现搜索相似图片
2015/09/22 PHP
thinkphp3.x中cookie方法的用法分析
2016/05/19 PHP
PHP CURL采集百度搜寻结果图片不显示问题的解决方法
2017/02/03 PHP
Yii2使用表单上传文件的实例代码
2017/08/03 PHP
用js得到网页中所有的div的id
2020/10/19 Javascript
JavaScript 变量基础知识
2009/11/07 Javascript
js解析xml字符串和xml文档实现原理及代码(针对ie与火狐)
2013/02/02 Javascript
AngularJS 作用域详解及示例代码
2016/08/17 Javascript
浅谈jQuery框架Ajax常用选项
2017/07/08 jQuery
JS中利用swiper实现3d翻转幻灯片实例代码
2017/08/25 Javascript
JavaScript学习笔记之惰性函数示例详解
2017/08/27 Javascript
页面缩放兼容性处理方法(zoom,Firefox火狐浏览器)
2017/08/29 Javascript
react.js 父子组件数据绑定实时通讯的示例代码
2017/09/25 Javascript
Vue实现表格批量审核功能实例代码
2019/05/28 Javascript
node.js处理前端提交的GET请求
2019/08/30 Javascript
element-ui tree结构实现增删改自定义功能代码
2020/08/31 Javascript
Windows系统下PhantomJS的安装和基本用法
2018/10/21 Python
让你Python到很爽的加速递归函数的装饰器
2019/05/26 Python
解决python super()调用多重继承函数的问题
2019/06/26 Python
python networkx 包绘制复杂网络关系图的实现
2019/07/10 Python
python selenium 查找隐藏元素 自动播放视频功能
2019/07/24 Python
python自动点赞功能的实现思路
2020/02/26 Python
网页布局中CSS样式无效的十个重要原因详解
2017/08/10 HTML / CSS
css3中背景尺寸background-size详解
2014/09/02 HTML / CSS
Sunglasses Shop德国站:欧洲排名第一的太阳镜网站
2017/08/01 全球购物
Kusmi茶美国官网:优质散叶茶和茶包
2019/10/13 全球购物
shell的种类有哪些
2015/04/15 面试题
会计学毕业生求职信
2014/06/25 职场文书
企业年检委托书范本
2014/10/14 职场文书
爸爸的三轮车观后感
2015/06/16 职场文书
Win7/8.1用户可以免费升级到Windows 11系统吗?
2021/11/21 数码科技
Mybatis是这样防止sql注入的
2021/12/06 Java/Android