请帮我看看这段asp代码错在哪里? 25
default.asp<html><head><metahttp-equiv="Cache_Control"content="max-age=0"/></head><bo...
default.asp
<html>
<head>
<meta http-equiv="Cache_Control" content="max-age=0"/>
</head>
<body>
<form name="form1" method="post" action="login.asp" onSubmit="return chkform(this)">
<td >用户名</td>
<td > <input name="User" maxlength="10" type="text" emptyok="false"/>
</td>
<tr>
<td>密码</td>
<input name="Pwrd" maxlength="10" type="password" emptyok="false"/>
</tr>
<tr>
<td ><input type="submit" name="Submit" value="登陆"></td>
</tr>
</form>
</body>
</html>
login.asp
<% @LANGUAGE="VBSCRIPT" %>
<%Option Explicit%>
<%
Dim rs,Username,Passw,SQL,Success,conn
Username=Request("User")
Passw=Lcase(Request("Pwrd"))
set conn = Server.CreateObject("ADODB.Connection")
conn.Open("driver={Microsoft Access Driver (*.mdb)};dbq=" &_
Server.MapPath("wapdb.mdb"))
SQL="select UserID,UserName from users"&"where username='"&Username&"'and password ='"&Passw&"'"
%>
<html>
<head>
<meta http-equiv="Cache_Control" content="max-age=0"/>
</head>
<body>
<%if rs.EOF then%>
<FORM Action="default.asp" Method=POST>
<input type="submit" name="Submit" value="accept">
</FORM>
<p>
<br/>Invalid Login
<br/>Please try again!
</p>
<%Else%>
<FORM Action="default.asp" Method=POST>
<input type="submit" name="Submit2" value="accept">
</FORM>
<p>welcome</p>
<p>you are now login in.</p>
<%End IF%>
</body>
</html>
上面是两个asp文件,但一直调试不出来,请高手指点
修改后的login.asp为
<% @LANGUAGE="VBSCRIPT" %>
<%Option Explicit%>
<%
Dim rs,Username,Passw,SQL,Success,conn
Username=Request("User")
Passw=Lcase(Request("Pwrd"))
set conn = Server.CreateObject("ADODB.Connection")
conn.Open("driver={Microsoft Access Driver (*.mdb)};dbq=" &_
Server.MapPath("wapdb.mdb"))
set rs=Server.CreateObject("ADODB.Recordset")
rs.open SQL,conn,1,1
SQL="select UserID,UserName from users"&"where username='"&Username&"'and password ='"&Passw&"'"
%>
略
<%End IF%>
<%
rs.close
set rs=nothing
conn.close
set conn=nothing
%>
</body>
</html>
显示错误为
ADODB.Recordset (0x800A0BB9)
参数类型不正确,或不在可以接受的范围之内,或与其他参数冲突。 展开
<html>
<head>
<meta http-equiv="Cache_Control" content="max-age=0"/>
</head>
<body>
<form name="form1" method="post" action="login.asp" onSubmit="return chkform(this)">
<td >用户名</td>
<td > <input name="User" maxlength="10" type="text" emptyok="false"/>
</td>
<tr>
<td>密码</td>
<input name="Pwrd" maxlength="10" type="password" emptyok="false"/>
</tr>
<tr>
<td ><input type="submit" name="Submit" value="登陆"></td>
</tr>
</form>
</body>
</html>
login.asp
<% @LANGUAGE="VBSCRIPT" %>
<%Option Explicit%>
<%
Dim rs,Username,Passw,SQL,Success,conn
Username=Request("User")
Passw=Lcase(Request("Pwrd"))
set conn = Server.CreateObject("ADODB.Connection")
conn.Open("driver={Microsoft Access Driver (*.mdb)};dbq=" &_
Server.MapPath("wapdb.mdb"))
SQL="select UserID,UserName from users"&"where username='"&Username&"'and password ='"&Passw&"'"
%>
<html>
<head>
<meta http-equiv="Cache_Control" content="max-age=0"/>
</head>
<body>
<%if rs.EOF then%>
<FORM Action="default.asp" Method=POST>
<input type="submit" name="Submit" value="accept">
</FORM>
<p>
<br/>Invalid Login
<br/>Please try again!
</p>
<%Else%>
<FORM Action="default.asp" Method=POST>
<input type="submit" name="Submit2" value="accept">
</FORM>
<p>welcome</p>
<p>you are now login in.</p>
<%End IF%>
</body>
</html>
上面是两个asp文件,但一直调试不出来,请高手指点
修改后的login.asp为
<% @LANGUAGE="VBSCRIPT" %>
<%Option Explicit%>
<%
Dim rs,Username,Passw,SQL,Success,conn
Username=Request("User")
Passw=Lcase(Request("Pwrd"))
set conn = Server.CreateObject("ADODB.Connection")
conn.Open("driver={Microsoft Access Driver (*.mdb)};dbq=" &_
Server.MapPath("wapdb.mdb"))
set rs=Server.CreateObject("ADODB.Recordset")
rs.open SQL,conn,1,1
SQL="select UserID,UserName from users"&"where username='"&Username&"'and password ='"&Passw&"'"
%>
略
<%End IF%>
<%
rs.close
set rs=nothing
conn.close
set conn=nothing
%>
</body>
</html>
显示错误为
ADODB.Recordset (0x800A0BB9)
参数类型不正确,或不在可以接受的范围之内,或与其他参数冲突。 展开
4个回答
展开全部
首先你要告诉我们你的出错信息,让我们看看:
default.asp中的 onSubmit="return chkform(this)" 说明你再用javascript验证用户名和密码,当时在你的程序里没有看到chkform()函数.去掉看看.
login.asp中位置颠倒一下,rs.open放到sql="。。。"后面
SQL="select UserID,UserName from [users] where username='"&Username&"'and password ='"&Passw&"'"
rs.open SQL,conn,1,1
default.asp中的 onSubmit="return chkform(this)" 说明你再用javascript验证用户名和密码,当时在你的程序里没有看到chkform()函数.去掉看看.
login.asp中位置颠倒一下,rs.open放到sql="。。。"后面
SQL="select UserID,UserName from [users] where username='"&Username&"'and password ='"&Passw&"'"
rs.open SQL,conn,1,1
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
AiPPT
2024-09-19 广告
2024-09-19 广告
随着AI技术的飞速发展,如今市面上涌现了许多实用易操作的AI生成工具1、简介:AiPPT: 这款AI工具智能理解用户输入的主题,提供“AI智能生成”和“导入本地大纲”的选项,生成的PPT内容丰富多样,可自由编辑和添加元素,图表类型包括柱状图...
点击进入详情页
本回答由AiPPT提供
展开全部
set rs=Server.CreateObject("ADODB.Recordset")
rs.open SQL,conn,1,1
SQL="select UserID,UserName from users"&"where username='"&Username&"'and password ='"&Passw&"'"
这段位置颠倒了,应该写成这样:
set rs=Server.CreateObject("ADODB.Recordset")
SQL="select UserID,UserName from users"&"where username='"&Username&"'and password ='"&Passw&"'"
rs.open SQL,conn,1,1
还有你的SQL语句为什么要在Where前面加个"&"呢,当然这样写可能不会出错可是感觉是多此一举。直接写成这样就可以了:
SQL="select UserID,UserName from users where username='"&Username&"'and password ='"&Passw&"'"
rs.open SQL,conn,1,1
SQL="select UserID,UserName from users"&"where username='"&Username&"'and password ='"&Passw&"'"
这段位置颠倒了,应该写成这样:
set rs=Server.CreateObject("ADODB.Recordset")
SQL="select UserID,UserName from users"&"where username='"&Username&"'and password ='"&Passw&"'"
rs.open SQL,conn,1,1
还有你的SQL语句为什么要在Where前面加个"&"呢,当然这样写可能不会出错可是感觉是多此一举。直接写成这样就可以了:
SQL="select UserID,UserName from users where username='"&Username&"'and password ='"&Passw&"'"
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
回复修改后的login.asp:
1、微软推荐使用OLEDB连接数据库:
conn.Open("provider=microsoft.jet.oledb.4.0;data source="&
Server.MapPath("wapdb.mdb"))
2、把SQL语句放到rs.open前面,不然SQL为空又怎么能open;
3、注意你的SQL:
SQL="select UserID,UserName from users"&"where username='"&Username&"'and password ='"&Passw&"'"
users"&"where这里错了,"&"前面或后面需要一个空格,其实这里也没有必要这样写,改成这样:
SQL="select UserID,UserName from [users] where username='"&Username&"' and password='"&Passw&"'"
4、养成在ASP中用response.write(SQL)检查语句错误的习惯。
1、微软推荐使用OLEDB连接数据库:
conn.Open("provider=microsoft.jet.oledb.4.0;data source="&
Server.MapPath("wapdb.mdb"))
2、把SQL语句放到rs.open前面,不然SQL为空又怎么能open;
3、注意你的SQL:
SQL="select UserID,UserName from users"&"where username='"&Username&"'and password ='"&Passw&"'"
users"&"where这里错了,"&"前面或后面需要一个空格,其实这里也没有必要这样写,改成这样:
SQL="select UserID,UserName from [users] where username='"&Username&"' and password='"&Passw&"'"
4、养成在ASP中用response.write(SQL)检查语句错误的习惯。
参考资料: http://hi.baidu.com/vencky
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
虽然你SQL语句有了,但是recordset都没有打开,怎么可能会有数据出来,你的rs.eof怎么会有用?
应该在SQL="..."后面加上:
set rs=server.createobject("adodb.recordset")
rs.open SQL,conn,1,1
而且还要在页面最后把conn和rs都关掉及清除掉
rs.close
set rs=nothing
conn.close
set conn=nothing
应该在SQL="..."后面加上:
set rs=server.createobject("adodb.recordset")
rs.open SQL,conn,1,1
而且还要在页面最后把conn和rs都关掉及清除掉
rs.close
set rs=nothing
conn.close
set conn=nothing
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询