asp中如何限制重复提交同一表单

2016-01-29 20:02 44 1 收藏

asp中如何限制重复提交同一表单,asp中如何限制重复提交同一表单

【 tulaoshi.com - ASP 】

在Internet上我们每天都会遇到数不清的表单,也看到其中大部分并没有限制用户多次提交同一个表单。缺乏这种限制有时候会产生某些预料不到的结果,如重复订阅邮件服务或重复投票等。或许一些asp初学者并不清楚在asp应用中如何限制重复提交同一表单,所以在这里向大家介绍在ASP应用中防止用户在当前会话期间多次提交同一表单的一个简单方法。

  这个工作主要由四个子程序组成,在较为简单的应用场合,你只要将这些代码放在包含文件中直接引用即可;对于那些较为复杂的环境,我们在文章的最后给出一些改进建议。

  一、基本工作过程

  下面我们依次讨论这四个子程序。

  (一)初始化

  这里我们要在Session对象中保存两个变量,其中:

   ⑴ 每一个表单对应一个称为FID的唯一标识,为使该值唯一要用到一个计数器。

   ⑵ 每当一个表单成功提交,必须在一个Dictionary对象中存储它的FID。

  我们用一个专用的过程来初始化上述数据。虽然以后各个子程序都要调用它,但实际上每一个会话期间它只执行一次:

Sub InitializeFID()

If Not IsObject(Session("FIDList")) Then

Set Session("FIDList")=Server.CreateObject("Scripting.Dictionary")

Session("FID")=0

End If

End Sub



  (二)生成表单的唯一标识符

  下面这个函数GenerateFID()用于生成表单的唯一标志。该函数首先将FID值加1,然后返回它:

Function GenerateFID()

InitializeFID

Session("FID") = Session("FID") + 1

GenerateFID = Session("FID")

End Function

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/asp/)

  (三)登记已提交表单

  当表单成功地提交时,在Dictionary对象中登记它的唯一标识:

Sub RegisterFID()

Dim strFID

InitializeFID

strFID = Request("FID")

Session("FIDlist").Add strFID, now()

End Sub

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/asp/)

本新闻共2页,当前在第1页  1  2  

来源:http://www.tulaoshi.com/n/20160129/1510610.html

延伸阅读
标签: Web开发
由于在项目中应用了Jquery Validation表单验证插件,所以要实现在Validation验证完毕后,提交form,然后禁止按钮。 CodeProject上有一个DisableBtnPostBack项目,但不无法和Jquery Validation结合,代码先贴出来,给大家提示下,碰到这种情况不要使用该代码。代码如下: js: 代码 代码如下: function disableBtn(btnID, newText) { Page...
标签: Web开发
看了网上的,有几种方法: 1 在你的表单页里HEAD区加入这段代码: 代码如下: META HTTP-EQUIV="pragma" CONTENT="no-cache" META HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate" META HTTP-EQUIV="expires" CONTENT="Wed, 26 Feb 1997 08:21:57 GMT" 2 生成一个令牌保存在用户session中,在form中加一个hidden域,...
三、表单的提交 既然表单是用来采集用户输入的数据,那么,就应该保证用户的数据被准确地提交到预定的地点,也就是说,我们在表单提交的时候,应该对用户的数据进行检验,一来可以避免用户误输数据,二来可以避免用户输入非法的,或者说不合格的数据;检验合格以后,还要保证用户的数据提交到特定的程序。 1.数据的检验 ...
标签: Web开发
这个问题我的办法是,用户有个活跃时间间隔问题。超过这个活跃时间间隔的则可以认为是离线,后者可以登陆 ,如果无后者登陆,但并不是说前者就需要重新登陆了。因为他的session还在的。只能是这个时间设置的越小越精确,也是不能做到绝对的。 代码贴出来给楼主参考下。 Function CheckOnline()DIM IP,rsPrv,Sql,PrvDbStatePrvDbState = FalseIf...
标签: Web开发
使用asp尽量减少服务器端的工作量,这样就应该多使用javascript,把所有提交字段使用javascript或vbscript检测后提交给服务器,这样服务器就不必再作检测,而在提交时可能会有人修改script从本地提交,这样存在安全提交的问题,所以应该要求从服务器断路径提交,其他地址提交提交无无效: 代码如下: % server_v1=Cstr(Request.ServerVariabl...

经验教程

167

收藏

83
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部