防止表单重复提交的方法 - 文章教程

防止表单重复提交的方法

发布于 2021-02-08 字数 961 浏览 902 评论 0

防止表单被用户重复提交,以下方法供参考:

1、禁掉提交按钮。表单提交后,通过 JavaScript 将提交按钮设置为 disable。

这种方法能够防止用户重复提交。但是如果客户端把 JavaScript 禁止,这种方法就无效了。

2、Post/Redirect/Get 模式,在提交后执行页面重定向,这就是所谓的 Post-Redirect-Get (PRG) 模式。当用户提交了表单后,执行一个客户端的重定向,转到提交成功信息页面。 这能避免用户按F5导致的重复提交,而其也不会出现浏览器表单重复提交的警告,也能消除按浏览器前进和后退按导致的同样问题。

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

4、在 session 中存放一个特殊标志。当表单页面被请求时,生成一个特殊的字符标志串,存在 session 中,同时放在表单的隐藏域里。接受处理表单数据时,检查标识字串是否存在,并立即从 session 中删除它,然后正常处理数据。 如果发现表单提交里没有有效的标志串,这说明表单已经被提交过了,忽略这次提交。 这使你的 Web 应用有了更高级的 XSRF 保护。

以上方法中,更推荐 2、3。

如果你对这篇文章有疑问,欢迎到本站 社区 发帖提问或使用手Q扫描下方二维码加群参与讨论,获取更多帮助。

扫码加入群聊

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

目前还没有任何评论,快来抢沙发吧!

关于作者

JSmiles

生命进入颠沛而奔忙的本质状态,并将以不断告别和相遇的陈旧方式继续下去。

2583 文章
29 评论
84935 人气
更多

推荐作者

nuj316

文章 0 评论 0

梦中楼上月下

文章 2 评论 0

kook

文章 0 评论 0

thousandcents

文章 0 评论 0

像你

文章 1 评论 0