• λ我爱Aspx >> Asp.Net >> 在ASP应用程序中限制重复提交同一表单
  • 在ASP应用程序中限制重复提交同一表单

  • :aspxer  Դ:internet  :2007-5-15 20:47:28  ؼ:asp
  • CheckFID = not Session("FIDlist").Exists(strFID)

    End Function

    二、如何使用

    有两个地方要用到上述函数,即表单生成时与结果处理时。假设上述四个子程序已经放入包含文件Forms.inc中,下面的代码根据FID值来决定生成表单还是处理表单结果,它所描述的处理过程适合于大多数ASP应用:

    < %Option Explicit%>

    < !--#include file="forms.inc"-->

    < HTML>

    < HEAD>

    < TITLE>表单提交测试< /TITLE>

    < /HEAD

    < BODY>

    < %

    If Request("FID") = "" Then

    GenerateForm

    Else

    ProcessForm

    End If

    %>

    < /BODY>

    < /HTML>

    GenerateForm负责生成表单,表单中应该含有一个隐藏的FID,如:

    < %

    Sub GenerateForm()

    %>

    < form action="< %=Request.ServerVariables("PATH_INFO")%>" method=GET>

    < input type=hidden name=FID value="< %=GenerateFID()%>">

    < input type=text name="param1" value="">

    < input type=submit value="OK">

    < /form>

    < %

    End Sub

    %>

    ProcessForm负责处理通过表单提交的内容,但在处理之前应该先调用CheckFID()检查当前表单是否已经提交,代码类如:

    < %

    Sub ProcessForm()

    If CheckFID() Then

    Response.Write "你输入的内容是" & Request.QueryString("param1")

    RegisterFID

    Else

    Response.Write "此表单只能提交一次!"

    End If

    End Sub

    %>

    三、限制与改进措施

    上面我们介绍了在当前会话期间限制同一表单被多次提交的一种方法。在实际应用中可能需要从多方面加以改进,例如:

    ⑴ 在登记表单ID之前检查用户输入数据的合法性,使得数据不合法时用户可以按“后退”按钮返回,在修正后再次提交同一表单。

    ⑵ 这种对表单提交的限制最多只能在当前会话期间有效。如果要求这种限制能够跨越多个会话,那么就要用到Cookeis或数据库来保存相关数据了。

    上一篇: 在ASP应用程序中加入智能搜索

    下一篇: 如何利用ASP实现邮箱访问

    Ҷƪл˵?
  • һƪ在ASP应用程序中加入智能搜索
    һƪASP程序中提供在线文章翻译功能