ASP检查用户登陆密码的问题!help!
每次提交都提示"对不起,您输入的密码不正确"
如果删掉提示这个的代码,就会提示"对不起,您登陆的身份不对,请选择正确的身份登陆"
后台数据库是sql2000,把sql语句放到查询分析器中能得到正确的结果.
<!--#include file="../conn/conn.asp"-->
<%
dim userid1,userpass1,userpower1
userid1 = Request.Form("userid")
userpass1 = Request.Form("userpass")
userpower1 =Request.Form("userpower")
if userid1 = "" then
Response.Write("<script>alert('对不起,请您输入用户名!');window.history.back();</script>")
Response.End()
elseif userpass1 = "" then
Response.Write("<script>alert('对不起,请您输入密码!');window.history.back();</script>")
Response.End()
end if
Set rs = Server.CreateObject("ADODB.RecordSet")
sql = "Select * From [userinfo] Where userid ='"&userid1&"'"
rs.Open sql,conn,1,1
if rs.BOF or rs.EOF then
Response.Write("<script>alert('对不起,您输入的用户名不存在!');window.history.back();</script>")
Response.End()
else if userpass1<>rs("userpass") then
Response.Write("<script>alert('对不起,您输入的密码不正确!');window.history.back();</script>")
Response.End()
else if userpower1<>rs("userpower") then
Response.Write("<script>alert('对不起,您登陆的身份不对,请选择正确的身份登陆!');window.history.back();</script>")
Response.End()
else
Session("userid") = rs("userid")
Session("userpower") = rs("userpower")
end if
end if
end if
rs.Close()
set rs = Nothing
if Session("userid") <> "" then
if Session("userpower")=3 then
Response.Redirect "../student/index.asp"
Response.End()
end if
end if
CloseDatabase
%>
问题点数:100、回复次数:15Top
1 楼youzi520(釉子-MeChecksV)回复于 2006-05-04 16:33:54 得分 10
if rs.BOF or rs.EOF then
Response.Write("<script>alert('对不起,您输入的用户名不存在!');window.history.back();</script>")
Response.End()
else
if userpass1<>rs("userpass") then
Response.Write("<script>alert('对不起,您输入的密码不正确!');window.history.back();</script>")
Response.End()
end if
if userpower1<>rs("userpower") then
Response.Write("<script>alert('对不起,您登陆的身份不对,请选择正确的身份登陆!');window.history.back();</script>")
Response.End()
end if
Session("userid") = rs("userid")
Session("userpower") = rs("userpower")
end if
Top
2 楼heroooooo(学习.NET)回复于 2006-05-04 18:44:39 得分 5
楼上正解.试下看能不能解决,..Top
3 楼yinxiaoyue()回复于 2006-05-04 19:09:55 得分 0
还是不行,一样的问题....是不是数据库有什么要求呀?不过我输入的用户名和密码跟数据库对应字段的绝对一样,这个没错.
Top
4 楼youzi520(釉子-MeChecksV)回复于 2006-05-04 19:19:29 得分 10
userpass1<>"rs("userpass")"
加上""Top
5 楼yinxiaoyue()回复于 2006-05-04 19:49:21 得分 0
是rs("userpass")的问题,它得不到数据库里面的正确值.用正确的密码代替以后就可以登陆了.为什么会有问题呢?
那怎么改呀?
非常感谢大家的帮助Top
6 楼youzi520(釉子-MeChecksV)回复于 2006-05-04 20:00:09 得分 5
不明了,程序没问题啊Top
7 楼yinxiaoyue()回复于 2006-05-04 20:48:38 得分 0
我还真的糊涂了.Response.Write(userpass1)显示的值和Response.Write(rs("userpass"))显示的值是一样的啊.为什么<>会成立呢?Top
8 楼nowheart(今心)回复于 2006-05-05 02:25:16 得分 5
想问一下,你数据库有没有同用户名的记录?Top
9 楼yinxiaoyue()回复于 2006-05-06 01:42:50 得分 0
没有!Top
10 楼yemeiqiang(萧红叶)回复于 2006-05-06 01:59:07 得分 20
可能是有空格吧
<!--#include file="../conn/conn.asp"-->
<%
dim userid1,userpass1,userpower1
userid1 = trim(Request.Form("userid"))
userpass1 = trim(Request.Form("userpass"))
userpower1 =trim(Request.Form("userpower"))
if userid1 = "" then
Response.Write("<script>alert('对不起,请您输入用户名!');window.history.back();</script>")
Response.End()
elseif userpass1 = "" then
Response.Write("<script>alert('对不起,请您输入密码!');window.history.back();</script>")
Response.End()
end if
Set rs = Server.CreateObject("ADODB.RecordSet")
sql = "Select * From [userinfo] Where userid ='"&userid1&"'"
rs.Open sql,conn,1,1
if rs.BOF or rs.EOF then
Response.Write("<script>alert('对不起,您输入的用户名不存在!');window.history.back();</script>")
Response.End()
else
if userpass1<>trim(rs("userpass") )then
Response.Write("<script>alert('对不起,您输入的密码不正确!');window.history.back();</script>")
Response.End()
end if
if userpower1<>trim(rs("userpower") ) then
Response.Write("<script>alert('对不起,您登陆的身份不对,请选择正确的身份登陆!');window.history.back();</script>")
Response.End()
end if
Session("userid") = trim(rs("userid"))
Session("userpower") = trim(rs("userpower"))
end if
试试看!
Top
11 楼bingdian37(冰点)回复于 2006-05-06 07:21:00 得分 20
sql server的char类型一定要注意这个问题的,空格,
使用rtrim在数据库中去掉右空格
或者使用trim在asp中去掉前后空格
这个问题在定长字符串数据类型中都存在
切记Top
12 楼bingdian37(冰点)回复于 2006-05-06 07:21:16 得分 10
使用varchar就好多了Top
13 楼s1ihome(My hometown is a beautiful village)回复于 2006-05-06 07:48:47 得分 15
对,可能是用char类型的问题Top
14 楼yinxiaoyue()回复于 2006-05-07 09:07:47 得分 0
谢谢各位!
确实是空格的问题,现已解决!Top
15 楼bluefairy(小龙女)回复于 2006-05-07 21:18:08 得分 0
学习Top




