<%
if(rs.next()){
pwd1 = rs.getString("password");
out.println(pwd1);
out.println(pwd2);
if(pwd1.equals(pwd2)){
out.println("deng lu cheng gong!");
}else{
out.println("mi ma cuo wu!");
}
}
else{
out.println("not find the user!");
}
}%>这是一段判断用户密码的代码,无论在用户登录界面输入什么,总是提示“mi ma cuo wu”这句话,也就是说
if(pwd1.equals(pwd2)){
out.println("deng lu cheng gong!"); 这句根本就不执行判断,我在这句话前加了两个输出语句,这两个值可以正确的输出,可是就是不进行比较。求高手指点,
跪谢了 !
if(rs.next()){
pwd1 = rs.getString("password");
out.println(pwd1);
out.println(pwd2);
if(pwd1.equals(pwd2)){
out.println("deng lu cheng gong!");
}else{
out.println("mi ma cuo wu!");
}
}
else{
out.println("not find the user!");
}
}%>这是一段判断用户密码的代码,无论在用户登录界面输入什么,总是提示“mi ma cuo wu”这句话,也就是说
if(pwd1.equals(pwd2)){
out.println("deng lu cheng gong!"); 这句根本就不执行判断,我在这句话前加了两个输出语句,这两个值可以正确的输出,可是就是不进行比较。求高手指点,
跪谢了 !
最好是你用
if(pwd1!=null&&(pwd1.trim()).equals(pwd2)){
//取出用户输入的用户名和密码;
String name2 = request.getParameter("username");
String pwd2 = request.getParameter("password");
//out.println(pwd2);
//String name1 = "";
String pwd1 = "";
%><%
//连接数据库;
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
Connection conn=DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=abc","sa","sa");
Statement stmt=conn.createStatement();
//查询数据库;
String sql="select username,password from userlogin where username='"+name2+"'";
ResultSet rs=stmt.executeQuery(sql);
%>
<%
if(rs.next()){
pwd1 = rs.getString("password");
out.println(pwd1);
out.println(pwd2);
if(pwd1.equals(pwd2)){
out.println("deng lu cheng gong!");
}else{
out.println("mi ma cuo wu!");
}
}
else{
out.println("not find the user!");
}
}%>
用while(rs.next())吧,
别光判断第一条啊。。
if(pwd1.equals(pwd2)){
out.println("deng lu cheng gong!"); 前面加的两条输出语句中的数值也可以正确的输出,就是上面这句话则怎么也不执行!
out.println(pwd1);
out.println(pwd2);
打印出的结果,如果没问题,那应该是5楼说的问题,要是不正确就是从数据库读数据的问题
或者判断pwd1和pwd2的长度~~~~
程序不会出错~~的
先去掉2端空格试试看 .trim()
if语句执行了,但只执行了第一条,第一条不对就返回false了。。