CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Web 开发 >  ASP

ASP检查用户登陆密码的问题!help!

楼主yinxiaoyue()2006-05-04 16:25:27 在 Web 开发 / ASP 提问

每次提交都提示"对不起,您输入的密码不正确"  
  如果删掉提示这个的代码,就会提示"对不起,您登陆的身份不对,请选择正确的身份登陆"  
  后台数据库是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

相关问题

关键词

得分解答快速导航

  • 帖主:yinxiaoyue
  • youzi520
  • heroooooo
  • youzi520
  • youzi520
  • nowheart
  • yemeiqiang
  • bingdian37
  • bingdian37
  • s1ihome

相关链接

  • Web开发类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo