注册 登录
编程论坛 ASP技术论坛

自学ASP半月,写了个程序,错误

zacom 发布于 2007-10-07 17:30, 1114 次点击
本程序是为了寻找丢失的密码,运行提交第一次时运行不了,为什么,请各位帮忙
<% @ language=vbscript %>
<%
response.buffer=true
on error resume next
If Request.ServerVariables("REQUEST_METHOD")="GET" Then
%>
<form action="密码.asp" method="post">
请输入帐号:
<input type="text" name="nam">
<input type="submit" name="B" value="查找">
</form>
<%
response.End
else response.Clear
set conn=server.createobject("adodb.connection")
conn.open "driver={microsoft access driver (*.mdb)};dbq= " & server.mappath("用户.mdb")

set rs=server.createobject("abodb.recordset")
rs.open "zhuce",conn,1,3
action=trim(request(action))
if action="acton" then
rs.movefirst
realnam=trim(request("realnam"))
while Not rs.eof
if realnam=rs("UserName") then
checker=true
end if
rs.movenext
wend
if checker then
response.write("你的密码为"+rs("Userpasswd"))
else
response.write("输入错误")
response.redirect("密码.asp")
end if
else
nam=trim(request("nam"))
while Not rs.Eof
if nam=rs("UserCount") then
check=true
end if
rs.movenext
wend
end if
if check then
%>
<form action="密码.asp" method="post">
<input type="hidden" name="action" value="acton">
请输入你的真实姓名:
<input type="text" name="realnam">
<input type="submit" name="B1" value="查找">
</form>
<%
else
response.write("输入错误")
response.redirect("密码.asp")
end if
end if
end if
%>

[此贴子已经被作者于2007-10-8 0:40:05编辑过]

11 回复
#2
yms1232007-10-07 17:34
on error resume next
把这句话删除,看看会出什么错误提示?
#3
zacom2007-10-07 17:59

on error resume next
把这句话删除,看看会出什么错误提示?
删后错误也改了,在第一次提交后本想让它运行红色部分的,可不行,为什么,请指教

[此贴子已经被作者于2007-10-7 18:00:52编辑过]

#4
yms1232007-10-07 18:14
出了什么错误提示?
#5
zacom2007-10-07 19:41

已经按着提示修改好了,但提交过转不到上面运行红色代码部分

#6
yms1232007-10-07 20:32
<form action="密码.asp" method="post">
因为楼主这里用的是post方法
而action=trim(request(action))
这段程序却用get方法接收,所以接收不到参数的。
#7
zacom2007-10-07 20:51

我是要接收<input type="hidden" name="action" valur="acton">中的值,按版主你的意思,不知道应该怎么修改,印象中是这样接收的,该怎么改好呢,谢谢

[此贴子已经被作者于2007-10-7 20:56:14编辑过]

#8
yms1232007-10-07 21:08
method="post"办法之一就是改这个为method="get"
或者request.form("realnam")的方法接收参数。
#9
zacom2007-10-07 21:28

我从书上看到request 是request.form和request.querystring的缩写,可以取代前两种方法....这是对还是错的,按你说的方法改后错误提示:如下:
Request 对象 错误 'ASP 0102 : 80004005'
需要字符串输入
/密码.asp,行 19
函数需要字符串输入


该怎么办好?

#10
zacom2007-10-07 23:56

已经解决了,多谢帮忙,上面已经修改好

[此贴子已经被作者于2007-10-8 0:40:54编辑过]

#11
yms1232007-10-08 13:47
以下是引用zacom在2007-10-7 21:28:36的发言:

我从书上看到request 是request.form和request.querystring的缩写,可以取代前两种方法....这是对还是错的,按你说的方法改后错误提示:如下:
Request 对象 错误 'ASP 0102 : 80004005'
需要字符串输入
/密码.asp,行 19
函数需要字符串输入


该怎么办好?

个人认为
request.form是接收method="post"的最保险的方法。
request接收GET方式没问题,接收post就不好使。

#12
zacom2007-10-08 17:16

恩!

1