看不懂!!!

SleepIn 2002-01-06 02:00:53
用几行Asp代码实现防止表单多次被提交
作者:廖家远

在很多情况下都需要防止相同的表单被多次提交,很多人的实现方法都比较复杂(代码数量超过几十行!!)下面提供一种只需使用几行代码的方法,轻松地实现了防止用户刷新多次提交表单和使用后退钮重复多次提交表单。
表单文件formtest.asp
< %Randomize '初始代随机数种子
num1=rnd() '产生随机数num1
num1=int(26*num1)+65 '修改num1的范围以使其是A-Z范围的Ascii码,以防表单名出错
session("antry")="test"&chr(num1) '产生随机字符串
% >
< form name="test" action="testact.asp" method="post" >
你的名字:< input type='text' name='' size=30 > '注意本行中使用了随机表单项名
< input type='submit' value='提交' >
< /form >
表单处理程序testact.asp
< %
teststr=request.form(session("antry"))
if teststr="" then
response.write "没有填写姓名或重复提交"
'由于用户没有填写名字,或表单被重复提交(标志为session("antry")为空)引起
else
response.write teststr
session("antry")="" '提交成功,清空session("antry"),以防重复提交!!
end if
% >
在这里,你只需随机化一个必填项目的表单项名即可,不必随机化所有的表单项目。
欢迎访问我的个人主页http://swuse.yeah.net
...全文
90 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
hehongyu2000 2002-01-06
  • 打赏
  • 举报
回复
好象< input type='text' name='' size=30 >这句不对吧, 应该是
< input type='text' name='<%= session("antry")%>' size=30 >
你可以试一下.

作者的本意是:
1.生成随即text name: session("antry")
2.将name session("antry")赋给<input type='text'
3.用户提交此page后, 检查text: session("antry")是否值为""
a. 值为""
(1)用户未填写此text box(此text box是required)
(2)第二次提交同一个page(原因在后)
显示错误 "没有填写姓名或重复提交"
b. 值不为""
将session("antry")=""(所以提交成功后, 再提交就会request.form("") = "")

SleepIn 2002-01-06
  • 打赏
  • 举报
回复
不懂的说.
撇开其它的不管,
光是看<input type='text' name=''>
跟下面的testster=request.form(...)
这个东东是怎么引用的?
WHO来解释一下?

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧