一个很老的话题了,在提交了一个form的数据后,怎样才能防止用户直接刷新提示界面来重复提交数据呢,大至上有两个很简单的方式达到目的。

方法一、form提交处理完后用Response.Redirect跳转一下页面,使得用户无法直接刷新到form提交后的页面,这种方式麻烦就是,你想保持提交前的页面状态的话,要作需要数据接替操作,作起来相当麻烦,我用这个方法时一向都是强制丢起所有页面状态,无奈,人懒没药医。

方法二、将form的所有数据加起来然后Md5一下,存在session里,下次收到数据在处理前也将所有相同的数据加起来Md5一下,对比session里的数据,如果一样就表示是重复提交,拒绝操作。防止用户手动把两次form值都填一下而无法提交,可以加一个当前时间的hidden来判定一下,是手动提交还是刷新提交就完美了。

以前一直在用方法一,导致页面状态,要不很麻烦的处理要不懒得处理导致很简单的界面用户操作起来相当繁琐。要不就是让用户随便刷新重提。最新一直在作着银行支付接口一直在搞密匙,作到这种界面时,突然想到,银行支付接口靠md5保证数据的完整性及安全性,为啥不能用md5来验证一下提交过来的form数据是否与上一次的相同呢?还能节省session占的内存数,然后方法二就诞生了。并发个blog记录一下,防止什么时候脑子一短路又把这方法给忘了,又回到页面状态保持困难的地狱里去。

老生常谈之防止刷新重复提交表单。相关推荐

  1. 防止刷新或后退页面重复提交表单

    刷新或后退页面会引起重复提交表单,为了避免这个头疼的问题发生,有几种方法可以实现.网上已经有很多实现的方式的思路,比如提交后禁用按钮.重定向和令牌,但前两种方式有时候不起作用或者说没有"安全 ...

  2. 【重复提交表单】表单重复提交的三种情况,解决办法

    引入 看一个重复提交表单的例子 F12可以看到,请求体中的参数在刷新页面之后仍然保留,因此每一次刷新页面,都会把现有的请求体中的表单数据提交一次到服务器,而接收的页面还是insert.jsp,于是造成 ...

  3. php ajax 重复提交,ThinkPHP防止重复提交表单的方法实例分析

    本文实例总结分析了ThinkPHP防止重复提交表单的方法.分享给大家供大家参考,具体如下: 为什么会有表单重复的坑 在开发中,如果一个新增或修改的表单,在后台完成数据库操作后我们设定的不是跳转到其他页 ...

  4. php防止订单重复计算,php防止用户重复提交表单

    我们提交表单的时候,不能忽视的一个限制是防止用户重复提交表单,因为有可能用户连续点击了提交按钮或者是攻击者恶意提交数据,那么我们在提交数据后的处理如修改或添加数据到数据库时就会惹上麻烦. 效果图: 那 ...

  5. 如何防止用户重复提交表单

    我们提交表单的时候,不能忽视的一个限制是防止用户重复提交表单,因为有可能用户连续点击了提交按钮或者是攻击者恶意提交数据,那么我们在提交数据后的处理如修改或添加数据到数据库时就会惹上麻烦. 那么如何规避 ...

  6. php js 防止重复提交表单,php如何防止form重复提交

    php如何防止form重复提交 引入cookie机制来解决(推荐学习:PHP编程从入门到精通) 用户提交表单到后端,在 Cookie 中做标记,指定时间内重复提交无效.但是用户禁用 Cookie 这个 ...

  7. java mvc中重复提交表单,spring mvc 防止重复提交表单的两种方法,推荐第二种

    第一种方法:判断session中保存的token 比较麻烦,每次在提交表单时都必须传入上次的token.而且当一个页面使用ajax时,多个表单提交就会有问题. 注解Token代码: package c ...

  8. JavaWeb -- Struts1 使用示例: 表单校验 防表单重复提交 表单数据封装到实体

    1. struts 工作流程图 超链接 2. 入门案例 struts入门案例:1.写一个注册页面,把请求交给 struts处理<form action="${pageContext.r ...

  9. ajax如何提交多表单的值_菜狗教程-03-如何解决快速提交两次重复提交表单的问题...

    菜狗教程-03-如何解决快速提交两次重复提交表单的问题 如何解决快速提交两次重复提交表单的问题? 我在前端和后端分别找到了一种简单实用的方式 vue如何解决快速重复提交表单的问题? (1) 在组件中增 ...

最新文章

  1. 经典笔试上机考题-表达式求值
  2. 利用python开源库制作并验证torrent种子文件
  3. Tomcat下载安装与环境变量的配置
  4. Windows Server 2008 R2入门之文件服务器
  5. docker mysql镜像连接不上_Mysql安装-Docker版
  6. 【干货】如何引导免费用户成为付费用户
  7. 计算机狐狸标志的程序,小狐狸等分线计算工具
  8. Docker镜像的多平台架构支持
  9. spring+ibatis配置
  10. 【Python3网络爬虫开发实战】1.7.2-mitmproxy的安装
  11. css base64 图片背景
  12. P2915 [USACO08NOV] Mixed Up Cows
  13. [Swift]LeetCode528. 按权重随机选择 | Random Pick with Weight
  14. kindeditor上传图片php,KindEditor在php环境下上传图片功能集成的方法示例
  15. visio2010中怎么画虚线
  16. vs2019生成的exe文件在别人电脑运行不了
  17. 数据湖与数据仓库:主要差异
  18. oppo修改无线网服务器,简单小修改,你的OPPO手机wifi信号会马上提升
  19. java设计模式用组合模式实现树形结构
  20. 人人都是系统装机高手,利用windows官方的工具,安装超简单

热门文章

  1. [Codeforces Round #627]1324D - Pair of Topics[二分]
  2. 生命倒计时-倒数9116日
  3. 在线运行java测试
  4. 项目非组件文件进行路由跳转【react与vue等其他框架均可使用】
  5. Js控制页面刷新(局部刷新全页面刷新)
  6. 有联系的标识变量的变化一定要同步
  7. 华为云云耀云服务器 中小企业的福音
  8. 中国AI觉醒 阿里王坚:云智能将成为大趋势
  9. html帮助文档怎么翻译,HTML文档,HTML document,音标,读音,翻译,英文例句,英语词典
  10. 学习python很无趣?看看这篇文章教你采集无水印美女视频(含视频教程)