赞
踩
表单重复提交是在Web应用中经常遇到的一个比较麻烦的问题。有很多应用场景都会遇到重复提交问题,比如:
用户提交表单时可能因为网速、网页被恶意刷新等原因,致使同一条记录重复插入到数据库中。我们可以从客户端和服务器端一起着手,设法避免同一表单的重复提交。以下是个人总结的防止重复提交的几种方法,供大家参考。
表单提交后使用Javascript使提交按钮disable。这种方法防止心急的用户多次点击按钮。但是如果客户端把Javascript给禁用的话,这种方法就无效了。
在提交后执行页面重定向,这就是所谓的Post-Redirect-Get (PRG)模式。当用户提交了表单后,去执行一个客户端的重定向,转到提交成功信息页面,这能避免用户按F5导致的重复提交,而其也不会出现浏览器表单重复提交的警告,也能消除按浏览器前进和后退按导致的同样问题。
在服务器端,生成一个唯一的标识符,将它存入session,同时将它写入表单的隐藏字段中,然后将表单页面发给浏览器,用户录入信息后点击提交,在服务器端,获取表单中隐藏字段的值,与session中的唯一标识符比较,相等说明是首次提交,就处理本次请求,然后将session中的唯一标识符移除
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。