回 帖 发 新 帖 刷新版面

主题:登陆错误!???这是为什么?

关于检测用户名及密码是否正确的问题!用户名是否正确可以判断,但密码永远都提示错误???若将第2个if改成:if(password.equals("123"));(密码设为123)则提示登陆成功.
这到底是为什么??
if(rs.next())       
{     
       String myPassword=rs.getString(1);  //提取数据库中密码
         out.print(myPassword); 
          if(password.equals(myPassword))
   {     out.print("你已经成功通过验证!");
%> 
  <a href="manage.jsp?">进入管理页面</a>
 <%   
    } 
    else
    {
     out.print("密码错误,请重新输入!");
 %> 
  <a href="login1.jsp?">返回</a>
 <%   
     }
}
else
    {
       out.print("该用户不存在!");    
%> 
  <a href="login1.jsp?">返回</a>
 <%   
     }  
  %>

回复列表 (共6个回复)

沙发

我原来也遇到过
好象是空格的问题,你 String myPassword=rs.getString(1); 以后.trim()一下
应该就可以解决了。

板凳


对!就是空格的问题!我说打印的时候怎么突然多了个空格呢!先试试哈~~~

3 楼


空格是没了,但还是提示密码错误??!

4 楼

我从新写了个。。。跟你那个查不多。。。。你看看


<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*"%>
<body>
<%
String name=(request.getParameter("name")).trim();
String myPassword=(request.getParameter("password")).trim();


Connection con;
Statement sql;
ResultSet rs;
try{
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

   con=DriverManager.getConnection("jdbc:odbc:ceshi","sa"," ");
   sql=con.createStatement();

   rs=sql.executeQuery("select * from ceshi where name='"+name+"'");
   
   if(rs.next())       
   {     
        
       String s=rs.getString(2).trim();
       
     if(myPassword.equals(s))
       {     
         out.print("你已经成功通过验证!");
         
       }
       else
       {
         out.print("密码错误,请重新输入!");
       }
   }  
   else
    {
       out.print("该用户不存在!");
    } 
   
}catch(Exception e){}
%> 
</body>

我感觉就是  String s=rs.getString(2).trim();   这句的事了
我在我机器上已经测试过了,没有问题你照着我的看看,我也是新手呵呵,写的不好,别见怪啊呵呵


数据库我叫ceshi  表叫ceshi   表里面有name  password  二个字段
数据员也叫测试


如果还有问题就继续问,我一直跟着这个帖子。呵呵

5 楼

啊!果然是啊,我只清楚了后面的空格,而前面提取的空格没有清除,怪不得不能匹配呢!真是太感谢了,又学到了一个小知识,呵呵,谢谢啦!奖励30分,呵呵,交个朋友吧

6 楼


呵呵,其实我也是新手,只是这个问题我也遇到过,我QQ是826077862

一起学习呵呵    +的时候写你的论坛名字就行..我记住了

yoyotree是你,呵呵[em2]

我来回复

您尚未登录,请登录后再回复。点此登录或注册