主题:  顺便也帮帮我吧!

d3dboy

职务:普通成员
等级:1
金币:0.0
发贴:27
#12001/11/10 13:36:57
我做了个asp密码验证,代码如下,看看哪里错了
<%
function checkPwd(ID,PSD)
dim conn,param,rs
set conn=server.createobject("ADODB.connection")
param="driver={Microsoft Access Driver (*.mdb)}"
conn.open param & ";dbq=" & server.mappath("users.mdb")
sql="select*from users where id='" & ID & "' and psd='" & PSD & "'"
set rs=conn.execute(sql)
if rs.eof then
checkpwd=false
else
checkpwd=true
end if
end function
%>
<%
if isEmpty(session("passed")) then session("passed")=false
id=request("ID")
psd=request("PSD")
if ID="" or PSD="" then
response.write"情输入用户名和密码"
elseif not checkpwd(ID,PSD) then
response.write"用户名或密码错误
请检查你的用户名和密码然后再试一次!"
else session=("passed")=true
end if
if not session("passed") then
%>



请输入你的用户名和密码!




登陆



">













用户名:
  密码:



<%response.end
end if %>



d3dboy

职务:普通成员
等级:1
金币:0.0
发贴:27
#22001/11/10 13:39:13
这是运行后的错误提示:
Microsoft OLE DB Provider for ODBC Drivers 错误 '80040e07'

[Microsoft][ODBC Microsoft Access 驱动程序] 标准表达式中数据类型不匹配。

/check.asp, 行8

你门可以到[url=corsair.myrice.com/asp.zip]corsair.myrice.com下载[/url]



5D荣誉斑竹

职务:普通成员
等级:2
金币:1.0
发贴:343
#32001/11/10 21:27:14
编辑一下你的问题,把笑脸转换禁止。要不有的地方看不明白



d3dboy

职务:普通成员
等级:1
金币:0.0
发贴:27
#42001/11/10 23:29:18
<%
function checkPwd(ID,PSD)
dim conn,param,rs
set conn=server.createobject("ADODB.connection")
param="driver={Microsoft Access Driver (*.mdb)}"
conn.open param & ";dbq=" & server.mappath("users.mdb")
sql="select*from users where id='" & ID & "' and psd='" & PSD & "'"
set rs=conn.execute(sql)
if rs.eof then
checkpwd=false
else
checkpwd=true
end if
end function
%>
<%
if isEmpty(session("passed")) then session("passed")=false
id=request("ID")
psd=request("PSD")
if ID="" or PSD="" then
response.write"情输入用户名和密码"
elseif not checkpwd(ID,PSD) then
response.write"用户名或密码错误
请检查你的用户名和密码然后再试一次!"
else session=("passed")=true
end if
if not session("passed") then
%>



请输入你的用户名和密码!




登陆



">













用户名:
  密码:



<%response.end
end if %>



5D荣誉斑竹

职务:普通成员
等级:2
金币:1.0
发贴:343
#52001/11/11 11:33:44
问题出现在两个地方
1、你的数据库中字段id 不是字符型的,但是你却当作字符型来使用:
sql="select*from users where id='" & ID & "' and psd='" & PSD & "'"
可以通过修改id为字符型来解决,或者把上一句修改为:
sql="select*from users where id=" & ID & " and psd='" & PSD & "'"
不过我觉得你最好专门增加一个用户名的字段来存放用户名称

2、else session=("passed")=true
修改为 else session("passed")=true 就可以了。
太粗心大意了 ,哈哈----------

编辑历史:[这消息被wincheer编辑过(编辑时间2001-11-11 11:44:09)]


d3dboy

职务:普通成员
等级:1
金币:0.0
发贴:27
#62001/11/11 15:04:59
谢谢!
我是专门做了个字段了,你可看看我数据库,顺便改一下吗?
 你可以到corsair.myrice.com下载



d3dboy

职务:普通成员
等级:1
金币:0.0
发贴:27
#72001/11/11 15:22:03
如何用sql在access2000中建数据库啊!
修改后还有错误,下面是错误提示:
Microsoft OLE DB Provider for ODBC Drivers 错误 '80040e10'

[Microsoft][ODBC Microsoft Access 驱动程序] 参数不足,期待是 1。

/check.asp, 行8

编辑历史:[这消息被d3dboy编辑过(编辑时间2001-11-11 15:44:13)]


5D荣誉斑竹

职务:普通成员
等级:2
金币:1.0
发贴:343
#82001/11/11 22:24:35
我在自己的机器上已经调试成功。
这样吧,你把文件和数据库发送到我的信箱,我仔细看看



yeaome

职务:普通成员
等级:1
金币:0.0
发贴:18
#92001/11/12 23:21:22
由于您的回复不经修改的复制了上面的原文,因此删除!

编辑历史:[这消息被wincheer编辑过(编辑时间2001-11-13 00:35:27)]


5D荣誉斑竹

职务:普通成员
等级:2
金币:1.0
发贴:343
#102001/11/13 0:37:20
d3dboy:
    我下载了你提供的原文件和数据库,修改了两个地方。
    1、users表中psd的类型改为字符型
    2、else session=("passed")=true 修改为else session("passed")=true
    经过修改以后,问题解决。
    欢迎你继续讨论



yeaome

职务:普通成员
等级:1
金币:0.0
发贴:18
#112001/11/13 8:59:48
斑竹,你的做法是不对的,因为你说“由于您的回复不经修改的复制了上面的原文,因此删除!”是错误的,我没有象你说的那样做,如果你稍微仔细看一下,你就可以发现这两段程序之间的差别!



d3dboy

职务:普通成员
等级:1
金币:0.0
发贴:27
#122001/11/13 16:02:15
谢谢,wincheer
是否因为MTS安装不成功而导致运行不成功呢?
你用什么服务器
98+PWS
2000+IIS?

编辑历史:[这消息被d3dboy编辑过(编辑时间2001-11-13 16:03:57)]


d3dboy

职务:普通成员
等级:1
金币:0.0
发贴:27
#132001/11/14 11:32:49
你在什么环境下调试成功的?
98+PWS?2000+IIS?不知道我那里不运行成功是否与不安装MTS有关????



5D荣誉斑竹

职务:普通成员
等级:2
金币:1.0
发贴:343
#142001/11/16 21:57:18
mts是用来处理事物提交的东东,和你说的这个问题没有关系