手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆

提交表单如何防刷新?

首页 > PHP >

自从有表单提交开始,这就是一直被人关注的话题。
搜索一下google,你可以搜到N条纪录,可是真正对你有用的有几条呢?

你搜索到的大多数都是讲的ASP网站下如何处理,少数讲了.net的,java的都放到框架里了,剩下的PHP的都是说用Session来解决。当然也有人回复直接加header标签,让他永远过期。就不会重复提交了。。

事实有用吗?我们一一看来,ASP的我们直接忽略,当然也可以参考他的一些方法而且PHP实现,但现在不看。一来,类似的方法PHP也有,二来,不喜欢ASP(这可以算个理由吧)

1、用session,表面上很不错,就和验证码似的,提交的时候判断是否与session的赋值相等,如果相等就提交,同时再注销这个session变量。不错,确实可行,但,如果表单的显示、提交、处理都在同一个页面里怎么办?根本无法处理,直接无视

2、JS控制,说是在没有提交的时候,var一个变量为false,onsubmit的时候,将它赋值为true,同时判断,如果是true就不让提交。听听是不错,可惜,实现起来并不是想象的这么容易。一旦提交后在跳转时按F5,这些就是白搭 。

3、disabled提交按钮。有用吗?效果同上

4、用COOKIE,有用吗???真的有用吗???或许吧,但是如果客户端关闭了cookie怎么办?那岂不是永远不会被提交了?

5、header过期。我开始也以为有用,并且在跳转函数前加上了这些。共四行代码哦。具体什么代码,我就不贴了,网上一搜一大堆。但实际中,如果问题和第一条相同,这点根本无法处理。

 

我现在怎么做?我现在是记录提交时间,刷新的时候用当前时间减去这个提交时间,如果在一定时间内就提示不能刷新。然后置时间为0,并强行跳转到列表页。

其实现在的很多框架都已经有处理。TP就是内置的。

很多论坛里面也有类似的处理,象discuz等等,可是,就象我说的,如果提交、显示都在同一个页面,那处理起来就复杂了。

虽然很多人说,这样并不建议,但已经这样了,我也总要找个解决方法的吧??对不?




本站采用创作共享版权协议, 要求署名、非商业和保持一致. 本站欢迎任何非商业应用的转载, 但须注明出自"易栈网-膘叔", 保留原始链接, 此外还必须标注原文标题和链接.

Tags: 表单, 防刷新

« 上一篇 | 下一篇 »

只显示10条记录相关文章

HTML 5的五个激动人心的特性 (浏览: 20019, 评论: 0)

13条记录访客评论

sdfsdfsdf

Post by sdfsdf on 2013, February 19, 3:50 PM 引用此文发表评论 #1

ppppppppppppppp

Post by ppp on 2012, February 3, 10:47 AM 引用此文发表评论 #2

检验一定要4字节以上吗?

Post by a132811 on 2011, October 11, 3:49 AM 引用此文发表评论 #3

滚滚滚滚滚滚滚滚滚滚滚滚滚

Post by ?? on 2011, September 1, 11:11 AM 引用此文发表评论 #4

ddddddddddddddddddd

Post by aaaaaaaaaaa on 2010, August 11, 12:23 AM 引用此文发表评论 #5

在一定时间内提示不能刷新,意味着这段时间内就算是正常提交同样不能

Post by aaa on 2010, June 29, 2:28 PM 引用此文发表评论 #6

fffffffffffffffff

Post by ffffffffff on 2010, June 2, 11:34 AM 引用此文发表评论 #7

asdfsaf

Post by 栽植 on 2010, May 27, 5:35 PM 引用此文发表评论 #8

双的分公司答复

Post by 双的分公司答复 on 2010, May 5, 10:58 AM 引用此文发表评论 #9

fdsafdafdsfds

Post by dafs on 2009, May 31, 9:58 AM 引用此文发表评论 #10

测试看看会刷新不!

Post by a on 2009, April 3, 5:11 PM 引用此文发表评论 #11

测试看看会刷新不!

Post by hello on 2008, December 8, 9:06 AM 引用此文发表评论 #12

还没有解决方法吗?

Post by aaaaa on 2008, December 6, 10:32 PM 引用此文发表评论 #13


发表评论

评论内容 (必填):