一个ASP登陆验证程序有点问题

来源:百度知道 编辑:UC知道 时间:2024/05/14 15:13:13
状况是提交正确ID和密码却显示密码错误,而rs("adminpswd")和adminpswd 2个值确实是一样的,不知道是逻辑上写的有问题吗?

程序如下:

<%
adminname=trim(request.form("name"))
adminpswd=md5(trim(request.form("pswd")))
set rs=server.CreateObject("adodb.recordset")
sql="select * from member where adminname='"&adminname&"'"
rs.open sql,conn,1,1
if rs.eof and rs.bof then
response.Write("没有该帐号!")
else
if rs("adminpswd")<>adminpswd then
response.Write("密码错误!")
else
response.Redirect("index.asp")
end if
end if
rs.close
set rs=nothing
conn.close
set conn=nothing
%>
问题解决了,也给大家说下问题所在,大家以后遇到也可以参考下。

以前用的是ACCESS,现在用的是MSSQL有些数据字段定义就要严格的多。

我密码开始用的是char类型,后来改成varchar,所以数据被自动补了空格到数据表里,眨一看数据都一样,结果有空格比较起来就不对。
对回答问题的表示感谢!虽然问题是自己找到答案的,分数还是一样送出。那就送给第一个回答的人吧!他的答案也接近问题所在了!

检查一下,密码存到表里的是已经md5加密了吗?

如果用MD5加密的话那么你的密码应证应该是:
if rs("adminpswd")<>md5(adminpswd) then
response.Write("密码错误!")
else
response.Redirect("index.asp")
end if
.....