跪求高人指点--身份验证代码
哪位大哥指点一下啊,很简单的身份验证程序,小弟是第一次写,总是出错,哪位给调试一下,再给个解释,谢谢了!!我的check.asp是这样写的:
<!--#include file=conn.asp-->
<%
dim sql,rs,user_name,password
user_name=trim(request("name"))
password=trim(Request("password"))
set rs=server.createobject("adodb.recordset")
sql="select * from users where password='"&password&"' and username='"&user_name&"'"
rs.open sql,conn
if not(rs.bof and rs.eof) then
if password=rs("password") and username=rs("user_name") then
session("user_name")=rs("user_name")
Response.Redirect "index.asp"
else
response.Write "用户名或密码错误<br>"
response.Write "<a href='login.asp'>返回修改"
end if
else
response.Write "用户名或密码错误<br>"
response.Write "<a href='login.asp'>返回修改"
end if
%>
login.asp 代码如下:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>用户登陆</title>
<body>
<h2 align="center">用户登陆</h2>
<form method="post" action="check.asp">
<table border="0" width="30%" bgcolor="#99CCFF" align="center">
<tr>
<td>姓 名: <input type="text" name="name" size="20"></td>
</tr>
<tr>
<td>密 码:<input type="password" name="password" size="20"></td>
</tr>
<tr>
<td> <input type="submit" value="确定"> <input type="reset" value="重填"></td>
</tr>
</table>
</form>
</body>
</html>
这是数据库连接文件:
<%
dim db,connstr
connstr="dbq="&server.mappath("bbs.mdb")&";driver={microsoft access driver (*.mdb)};"
set db=server.CreateObject("adodb.connection")
db.open connstr
%>
问题点数:50、回复次数:16Top
1 楼lienzhu(李强)回复于 2004-12-01 23:12:37 得分 50
rs.open sql,conn,3
Top
2 楼pretty_yang(错乱和尚)回复于 2004-12-01 23:14:37 得分 0
还是不行。报错为:
错误类型:
ADODB.Recordset (0x800A0BB9)
参数类型不正确,或不在可以接受的范围之内,或与其他参数冲突。
/home/bbs/check.asp, 第 8 行
Top
3 楼lienzhu(李强)回复于 2004-12-01 23:16:01 得分 0
也可以把
set rs=server.createobject("adodb.recordset")
sql="select * from users where password='"&password&"' and username='"&user_name&"'"
rs.open sql,conn
换成
sql="select * from users where password='"&password&"' and username='"&user_name&"'"
set rs=conn.execute(sql)
Top
4 楼lienzhu(李强)回复于 2004-12-01 23:18:22 得分 0
<%
dim conn,connstr
connstr="dbq="&server.mappath("bbs.mdb")&";driver={microsoft access driver (*.mdb)};"
set conn=server.CreateObject("adodb.connection")
conn.open connstr
%>
Top
5 楼pretty_yang(错乱和尚)回复于 2004-12-01 23:23:01 得分 0
conn.asp和check.asp都按 lienzhu(李强) 大哥的改了,还是抱错
错误类型:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E10)
[Microsoft][ODBC Microsoft Access Driver] 参数不足,期待是 1。
/home/bbs/check.asp, 第 7 行Top
6 楼cheng17(+天空+)回复于 2004-12-01 23:29:21 得分 0
rs.open sql,conn,1,1Top
7 楼lienzhu(李强)回复于 2004-12-01 23:32:57 得分 0
sql="select * from users where password='"&password&"' and username='"&user_name&"'"
response.write sql
response.end
'输出sql语句看看
set rs=conn.execute(sql)
Top
8 楼lienzhu(李强)回复于 2004-12-01 23:34:59 得分 0
user_name=trim(request.form("name"))
password=trim(Request.form("password"))Top
9 楼lienzhu(李强)回复于 2004-12-01 23:52:36 得分 0
check.asp
<!--#include file=conn.asp-->
<%
dim sql,rs,user_name,password,errcode
user_name=trim(request("name"))
password=trim(Request("password"))
errcode=0
if user_name="" or password="" then
errcode=1
else
set rs=server.createobject("adodb.recordset")
sql="select * from users where password='" & checkstr(password) & "' and username='" & checkstr(user_name) & "'"
set rs=conn.execute(sql)
if not(rs.bof and rs.eof) then
session("user_name")=rs("user_name")
else
errcode=2
end if
end if
rs.close
set rs=nothing
call closedatabase()
if errcode=0 then
Response.Redirect "index.asp"
else
response.Write "用户名或密码错误<br>"
response.Write "<a href='login.asp'>返回修改"
end if
%>
------------------------------------------------------------------------------
conn.asp
<%
dim conn,connstr
connstr="dbq="&server.mappath("bbs.mdb")&";driver={microsoft access driver (*.mdb)};"
set conn=server.CreateObject("adodb.connection")
conn.open connstr
function closeDatabase()
conn.close
set conn = nothing
end function
function checkStr(str)
if isnull(str) then
checkStr = ""
exit function
end if
str = Replace(str, Chr(0), "")
checkStr=replace(str,"'","''")
end function
%>
Top
10 楼pretty_yang(错乱和尚)回复于 2004-12-02 00:09:49 得分 0
还是不行啊Top
11 楼pretty_yang(错乱和尚)回复于 2004-12-02 00:11:57 得分 0
错误类型:
Microsoft VBScript 运行时错误 (0x800A01A8)
缺少对象: ''
/home/bbs/check.asp, 第 7 行Top
12 楼lienzhu(李强)回复于 2004-12-02 00:14:31 得分 0
先更正一下
end if
rs.close
set rs=nothing
为
rs.close
set rs=nothing
end ifTop
13 楼lienzhu(李强)回复于 2004-12-02 00:25:03 得分 0
session("user_name")=rs("username")
测试通过
<%
dim conn,connstr
connstr="dbq="&server.mappath("bbs.mdb")&";driver={microsoft access driver (*.mdb)};"
set conn=server.CreateObject("adodb.connection")
conn.open connstr
function closeDatabase()
conn.close
set conn = nothing
end function
function checkStr(str)
if isnull(str) then
checkStr = ""
exit function
end if
str = Replace(str, Chr(0), "")
checkStr=replace(str,"'","''")
end function
%>
check.asp
<!--#include file=conn.asp-->
<%
dim sql,rs,user_name,password,errcode
user_name=trim(request("name"))
password=trim(Request("password"))
errcode=0
if user_name="" or password="" then
errcode=1
else
set rs=server.createobject("adodb.recordset")
sql="select * from users where password='" & checkstr(password) & "' and username='" & checkstr(user_name) & "'"
set rs=conn.execute(sql)
if not(rs.bof and rs.eof) then
session("user_name")=rs("username")
else
errcode=2
end if
rs.close
set rs=nothing
end if
call closedatabase()
if errcode=0 then
Response.Redirect "index.asp"
else
response.Write "用户名或密码错误<br>"
response.Write "<a href='login.asp'>返回修改"
end if
%>
Top
14 楼lienzhu(李强)回复于 2004-12-02 00:29:42 得分 0
数据库中是username 还是 user_name 我是按 username写的
Top
15 楼pretty_yang(错乱和尚)回复于 2004-12-02 00:31:17 得分 0
数据库中是user_name,我试试,先谢谢这位大哥了Top
16 楼pretty_yang(错乱和尚)回复于 2004-12-02 00:33:59 得分 0
终于搞定了,谢谢了大哥!!!!Top




