博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
防止表单重复提交的几种思路
阅读量:5921 次
发布时间:2019-06-19

本文共 536 字,大约阅读时间需要 1 分钟。

1. 禁掉提交按钮

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

2. Post/Redirect/Get模式

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

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

3. 在session中存放一个特殊标志

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

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

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

4. 在数据库里添加约束

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

总的来说,就是disable ,token, Redirect ,数据库标识

转载地址:http://htivx.baihongyu.com/

你可能感兴趣的文章
java集合框架之Set
查看>>
iOS 开发实用工具
查看>>
OC -网络请求 - NSURLConnection - POST
查看>>
Listbox与Listbox with key的区别
查看>>
ABAP 锁机制
查看>>
Window 查看 端口操作
查看>>
Idea报错Command line is too long
查看>>
CSS书写规范
查看>>
Chapter 6. ListBox控件(双击播放图片)
查看>>
[BZOJ 2716][Violet 3]天使玩偶(CDQ分治+树状数组)
查看>>
[Codeforces Round #261 (Div. 2) E]Pashmak and Graph(Dp)
查看>>
PHP5.5新特性
查看>>
url_for和redirect区别
查看>>
BZOJ3524: [Poi2014]Couriers
查看>>
2018-2019-1 20165232 20165231 20165235实验二——固件程序设计
查看>>
判断Excel版本信息
查看>>
删除远程库文件
查看>>
go语言中的并发
查看>>
Python--介绍、变量、流程控制
查看>>
iptables-save 输出格式详解
查看>>