asp表单防止重复提交或者说防刷新的问题
是这样的,我做了一个接受表单页save.asp但是表单是从各种不同的网站提交过来的,所以我不能在表单页上面生成什么唯一id去判断表单,现在只能在save.asp上面做提交...
是这样的,我做了一个接受表单页save.asp但是表单是从各种不同的网站提交过来的,所以我不能在表单页上面生成什么唯一id去判断表单,现在只能在save.asp上面做提交限制,各位达人们有什么好办法?我在网络上找到的基本都要在表单提交页生成id去判断。现在太多重读表单了,有时候他们网速一卡就提交十多份重复表单。该怎么做?
展开
展开全部
Sub PreventRefresh()
Dim RefreshTime,isRefresh
RefreshTime = 10 '防止刷新时间,单位(秒)
isRefresh = 1 '是否使用防刷新功能,0=否,1=是
If isRefresh = 1 Then
If (Not IsEmpty(Session("RefreshTime"))) And RefreshTime > 0 Then
If DateDiff("s", Session("RefreshTime"), Now()) < RefreshTime Then
Response.Write "<META http-equiv=Content-Type content=text/html; chaRset=gb2312><meta HTTP-EQUIV=REFRESH CONTENT="&RefreshTime&"><br>本页面起用了防刷新机制,请不要在"&RefreshTime&"秒内连续刷新本页面<BR>正在打开页面,请稍后……"
Response.End
Else
Session("RefreshTime") = Now()
End If
Else
Session("RefreshTime") = Now()
End If
End If
End Sub
Dim RefreshTime,isRefresh
RefreshTime = 10 '防止刷新时间,单位(秒)
isRefresh = 1 '是否使用防刷新功能,0=否,1=是
If isRefresh = 1 Then
If (Not IsEmpty(Session("RefreshTime"))) And RefreshTime > 0 Then
If DateDiff("s", Session("RefreshTime"), Now()) < RefreshTime Then
Response.Write "<META http-equiv=Content-Type content=text/html; chaRset=gb2312><meta HTTP-EQUIV=REFRESH CONTENT="&RefreshTime&"><br>本页面起用了防刷新机制,请不要在"&RefreshTime&"秒内连续刷新本页面<BR>正在打开页面,请稍后……"
Response.End
Else
Session("RefreshTime") = Now()
End If
Else
Session("RefreshTime") = Now()
End If
End If
End Sub
参考资料: http://zhidao.baidu.com/question/115520095.html
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用IP去验证。一个IP在10分钟内只能提交一次。这样子。就不存在了。
strUserIP = Request.ServerVariables("HTTP_X_FORWARDED_FOR")
If strUserIP = Empty Then
strUserIP = Request.ServerVariables("REMOTE_ADDR")
End If
users(100,100)'存100个IP
这个循环的自己摆渡一下吧,反正就是类似这样的,方法告诉你就好了,用一个数组记录一下用户的IP还有提交的时间。然后存到Application里面。提交的时候就验证一下这个IP和时间存在不存在。存在的就不给提交。不存在的就可以提交。当然也可以直接弄个数据库表来记录,比Application方便 。
Application("users")=users
strUserIP = Request.ServerVariables("HTTP_X_FORWARDED_FOR")
If strUserIP = Empty Then
strUserIP = Request.ServerVariables("REMOTE_ADDR")
End If
users(100,100)'存100个IP
这个循环的自己摆渡一下吧,反正就是类似这样的,方法告诉你就好了,用一个数组记录一下用户的IP还有提交的时间。然后存到Application里面。提交的时候就验证一下这个IP和时间存在不存在。存在的就不给提交。不存在的就可以提交。当然也可以直接弄个数据库表来记录,比Application方便 。
Application("users")=users
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
方法1、对标题和内容做重复验证,信息有重复就不让他提交
方法2、获取来路ip(存入一个独立的表中,表中含有录入时间),对其加时间限制(获取信息后,先判断表中是否有该ip,如果有该ip再判断时间是否已小于当前时间5分钟了),5分钟内不让他重复提交。
方法2、获取来路ip(存入一个独立的表中,表中含有录入时间),对其加时间限制(获取信息后,先判断表中是否有该ip,如果有该ip再判断时间是否已小于当前时间5分钟了),5分钟内不让他重复提交。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果是恶意就没话说了,如果是因为网速问题,可以点第一次的时候,让这个按钮自动失效掉,或者在js
定义一个全局变量判断下
例:a=1,按钮点一次
a就自减一次,然后通过js判断a是否小于0,如果小于0就不要提交那表单
定义一个全局变量判断下
例:a=1,按钮点一次
a就自减一次,然后通过js判断a是否小于0,如果小于0就不要提交那表单
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在第一次提交表单的时候做一个session,如果他第二次提交的话把提交的时间和session里的时间做对比,如果小于一定值的话就提示不能操作
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询