当前位置:首 页 > 攻城湿 >Web开发 > 查看文章

防止表单重复提交的几种策略

Web开发 你是第2101个围观者 5条评论 供稿者: 标签:, ,

表单重复提交是在多用户Web应用中最常见、带来很多麻烦的一个问题。有很多的应用场景都会遇到重复提交问题,比如:

  • 点击提交按钮两次。
  • 点击刷新按钮。
  • 使用浏览器后退按钮重复之前的操作,导致重复提交表单。
  • 使用浏览器历史记录重复提交表单。
  • 浏览器重复的HTTP请求。
  • 几种防止表单重复提交的方法

禁掉提交按钮。表单提交后使用Javascript使提交按钮disable。这种方法防止心急的用户多次点击按钮。但有个问题,如果客户端把Javascript给禁止掉,这种方法就无效了。

我之前的文章曾说过用一些Jquery插件效果不错。

Post/Redirect/Get模式。在提交后执行页面重定向,这就是所谓的Post-Redirect-Get (PRG)模式。简言之,当用户提交了表单后,你去执行一个客户端的重定向,转到提交成功信息页面。

这能避免用户按F5导致的重复提交,而其也不会出现浏览器表单重复提交的警告,也能消除按浏览器前进和后退按导致的同样问题。

在session中存放一个特殊标志。当表单页面被请求时,生成一个特殊的字符标志串,存在session中,同时放在表单的隐藏域里。接受处理表单数据时,检查标识字串是否存在,并立即从session中删除它,然后正常处理数据。

如果发现表单提交里没有有效的标志串,这说明表单已经被提交过了,忽略这次提交。

这使你的web应用有了更高级的XSRF保护。

在数据库里添加约束。在数据库里添加唯一约束或创建唯一索引,防止出现重复数据。这是最有效的防止重复提交数据的方法。

这家伙很懒,什么都没写!

—— zhaorong

zhaorong
你可能也喜欢Related Posts
众说纷纭Comments
大眼 可爱 大笑 坏笑 害羞 发怒 折磨 快哭了 大哭 白眼 晕 流汗 困 腼腆 惊讶 憨笑 色 得意 骷髅 囧 睡觉 眨眼 亲亲 疑问 闭嘴 难过 淡定 抗议 鄙视 猪头
小提示:直接粘贴图片到输入框试试
努力发送中...
  1. 1 楼 su

    沙发啊 呵呵这个不懂啊

    2013年11月14日 01:15:16 回复 取消回复
  2. 2 楼

    找对了爱人会幸福一辈子,找对了

    2014年01月20日 12:20:34 回复 取消回复
  3. 3 楼

    你成为出演猪八戒的最佳主角人选[标签:标题]

    2014年01月21日 03:54:27 回复 取消回复
  4. 4 楼 访客

    多么振奋,伤痛痊愈之后多么珍惜。月日,我郑重向你表白:

    2014年01月23日 01:17:13 回复 取消回复
  5. 5 楼

    上完坟回去的时候看见朋友4岁的儿子站在坟前哭,他爹在烧纸放鞭炮我问他爹他怎么了?他爹踢了他儿子一脚说:“这熊孩子说磕了这么多头一个红包也没有”对牛做了什么

    2014年02月10日 10:40:38 回复 取消回复
  • 评论最多
  • 最新评论
  • 随机文章
footer logo
未经许可请勿自行使用、转载、修改、复制、发行、出售、发表或以其它方式利用本网站之内容
Copyright © zhaorong All Rights Reserved. 滇ICP备15006105号-1