宝哥软件园

防止重复提交表单的几种方法

编辑:宝哥软件园 来源:互联网 时间:2021-11-10

表单的重复提交是多用户Web应用程序中最常见和最麻烦的问题。有很多应用场景会遇到重复提交的问题,比如两次点击提交按钮。单击刷新按钮。使用浏览器上一步按钮重复前面的操作,导致表单重复提交。使用浏览器历史记录重复提交表单。来自浏览器的重复HTTP请求。

防止重复提交表单的几种方法禁止使用提交按钮。表单提交后,使用Javascript禁用提交按钮。这种方法可以防止不耐烦的用户多次点击按钮。但是有一个问题,如果客户端禁止Javascript,这个方法会失效。我之前的文章说使用一些Jquery插件效果很好。开机自检/重定向/获取模式。页面重定向是在提交后执行的,称为后重定向获取(PRG)模式。简而言之,在用户提交表单之后,您执行客户端重定向并转到提交成功信息的页面。这样可以避免用户按F5导致的重复提交,不会出现浏览器表单重复提交的警告,也可以消除浏览器前后按造成的同样问题。在进程中保存一个特殊标志。当请求表单页面时,会生成一个特殊的字符标志字符串,该字符串存储在会话中,并放置在表单的隐藏字段中。接受表单数据时,检查标识字符串是否存在,立即将其从会话中删除,然后正常处理数据。如果发现表单提交中没有有效的标志字符串,则表示表单已经提交,此提交被忽略。这为您的web应用程序提供了更高级的XSRF保护。在数据库中添加约束。在数据库中添加唯一约束或创建唯一索引,以防止重复数据。这是防止重复提交数据的最有效方法。

更多资讯
游戏推荐
更多+