ASP如何防止表单重复提交(2)_ASP教程

编辑Tag赚U币
教程Tag:暂无Tag,欢迎添加,赚取U币!

推荐:如何解决left截取字符标题长度不一
我们经常看到直接用left截字符串时,因为标题中会出现汉字和英文共存,所以造成两条新闻标题长度不一,为了解决这个问题我们可以使用下面这个函数。 % ’************************************************** ’函数名:gotTopic ’作用:截字符串,汉字一个算


 二、如何使用 

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

<!--#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
%> 


 三、限制与改进措施 

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

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

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

 ⑶ 这种方法是不安全的。它仅用于防范误操作,不能防止熟练用户有意地多次提交同一表单。 

分享:解读用asp编写类似搜索引擎功能的代码
首先建一个 access 数据库 ,库中有一个URLINDEX表,其中URL和Keywords字段分别添加了索引,如下: URL 文本(索引:有(无重复)) Title文本 Description文本 Summary文本 Keywords文本(索引:有(无重复)) 程序文件doquery.asp,代码: HTMLHEADTITLE简单搜索引擎

共2页上一页12下一页
来源:模板无忧//所属分类:ASP教程/更新时间:2010-02-01
相关ASP教程