2013-04-29 3 views
0

Так что я просто возился с JSP и пытался создать форму для входа, теперь, когда я вхожу в «тест» как имя пользователя и «проверяю» как пароль, он должен войти в систему , так как эта учетная запись создается в базе данных. Вместо «входа в систему» ​​он просто показывает мне текст «Неверное имя пользователя: тест», а затем в новой строке значение базы данных, которое было возвращено из метода, который я написал, который является «тестом».Сравнение строк верно, но выполняется иначе либо в любом случае

Пожалуйста, помогите мне с этим вопросом, это действительно начинает беспокоить меня.

Это мой код:

String userID = request.getParameter("username").trim(); 
String pass = request.getParameter("password").trim(); 

String corrUserID = MySQL.getString("SELECT username FROM users WHERE username='" + userID + "'", "username").toString(); 
String corrPass = MySQL.getString("SELECT password FROM users WHERE username='" + pass + "'", "password").toString(); 

if(corrUserID != "String" && corrPass != "String" && userID != "Username" && pass != "Password"){ 
    if(userID == corrUserID){ 
     if(pass == corrPass){ 

      out.println("Logged in!"); 
      response.sendRedirect("index.jsp"); 

     }else{ 
      out.println("Incorrect password."); 
     } 
    }else{ 
     out.println("Incorrect username: " + userID + "<br/>" + corrUserID); 
    } 
}else{ 
    out.println("Please enter a valid username and password."); 
} 
+1

** Не храните пароли в текстовом формате ** – SLaks

+0

У вас есть уязвимость в SQL-инъекции. – SLaks

+0

Не препятствуйте пользователям иметь пароли с ведущими или конечными пробелами. – SLaks

ответ

0

Использование equals() для сравнения String.

if(userID.equals(corrUserID)) 

== испытания на равенство ссылок.

.equals() испытания на равенство ценностей.

+0

Спасибо! Ты спас меня от сдачи, я всегда думал, что .equals() сделал то же самое, что и ==, спасибо, что сказал мне. :) – ShadowParallax

Смежные вопросы