2、可以看到已经提茭成功
3、刷新页面或者后退重新点击提交按钮可以看到表单提交被拦截,后台输出提示信息
常见的30种数学模型比较详细,非常适合搞数学建模的学生使用
用户在操作表单Post数据时往往会出現表单数据表单防重复提交交的问题尤其在Web开发中此类问题比较常见。刷新页面后退操作以前的页面,单机多次按钮都会导致数据表單防重复提交交此类问题是因为浏览器表单防重复提交交HTTP请求导致。
下面列出了四种比较常用的解决方案:
1、在数据库添加唯一字段
在数据库建表的时候在ID字段添加主键约束账号,名称的信息添加唯一性约束确保数据库只可以添加一条数据。
此方法从根本上的防止了数据表单防重复提交交
2、用js为添加按钮禁用
当用户提交表单之后,可以使用js将提交按钮隐藏(disable属性)防止用户多次点击按鈕提交数据。
注意:如果客户端禁用了js则此方法无效。
Post/Redirect/Get简称PRG是一种可以防止表单数据表单防重复提交交的一种Web设计模式,像用户刷新提交响应页面等比较典型的表单防重复提交交表单数据的问题可以使用PRG模式来避免例如:当用户提交成功之后,执行客户端重定向跳转到提交成功页面。
注意:PRG设计模式并不适用所有的表单防重复提交交情况比如:
1)由于服务器响应缓慢,用户刷新提交POST请求造成嘚表单防重复提交交
2)用户点击后退按钮,返回到数据提交界面导致的数据表单防重复提交交。
3)用户多次点击提交按钮导致的数據表单防重复提交交。
4)用户恶意避开客户端预防多次提交手段进行重复数据提交。
客户端请求页面时服务器为每次产生的Form表单分配唯一的随机标识号,并且在orm的一个隐藏字段中设置这个标识号同时在当前用户的Session中保存这个标识号。当提交表单时服务器比较hidden和session中的標识号是否相同,相同则继续处理完后清空Session,否则服务器忽略请求
注意:恶意用户可利用这一性质,不断重复访问页面以致Session中保存嘚标识号不断增多,最终严重消耗服务器内存可以采用在Session中记录用户发帖的时间,然后通过一个时间间隔来限制用户连续发帖的数量来解决这一问题
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。