jsp, mysql 게시판 로그인 문제(쿼리문제?)

조회수 537회

DB연결 문제를 해결하고 이제 회원가입/로그인/로그아웃을 구현중인데... 회원가입까지 성공을 했습니다

그런데 이번엔 로그인 문제가 터졌는데 도무지 어디가 문제인지 모르겠습니다

아이디와 비밀번호를 넣어도 자꾸 비밀번호를 틀리게 넣었다고 뜹니다

MemberDao에서 아이디와 비밀번호를 비교하는 부분입니다.
    public int loginCheck(String id, String pw) {
        Connection conn = null;
        PreparedStatement pstmt = null;
        ResultSet rs = null;

        String dbPW = "";
        int x = -1;

        try {
            StringBuffer query = new StringBuffer();
            query.append("SELECT password FROM member WHERE id=?");

            conn = ConnUtil.getConnection();
            pstmt = conn.prepareStatement(query.toString());
            pstmt.setString(1, id);
            rs = pstmt.executeQuery();

            if(rs.next()) {
                dbPW = rs.getString("password");

                if(dbPW.equals(pw)) {
                    x = 1;    // 비밀번호가 일치
                } else {
                    x = 0;    //비밀번호가 불일치
                }
                System.out.println(x);
            } else {
                x = -1;    // 아이디 없음
            }
            return x;
        }
    ...

catch부분은 생략하겠습니다
MemberLoginAction dao에서 값을 받아 처리하는 자바 페이지입니다
public class MemberLoginAction implements Action {

    @Override
    public ActionForward execute(HttpServletRequest request, HttpServletResponse response) throws Exception {
        ActionForward forward = new ActionForward();
        HttpSession session = request.getSession();

        String id = request.getParameter("id");
        String password = request.getParameter("passwrod");

        MemberDao dao = MemberDao.getInstance();
        int check = dao.loginCheck(id, password);

        if(check == 0) {    // 비밀번호 불일치
            request.setAttribute("fail", "0");

            forward.setRedirect(false);
            forward.setNextPath("LoginForm.do");
        } else if(check == -1) {
            request.setAttribute("fail", "-1");

            forward.setRedirect(false);
            forward.setNextPath("LoginForm.do");
        } else {    // 비밀번호 일치
            session.setAttribute("sessionID", id);

            forward.setRedirect(true);
            forward.setNextPath("MainForm.do");
        }

        return forward;
    }
}

오류도 안 뜨는데 dao에서 x값이 자꾸 0으로 나와 비밀번호를 다시 확인해달라고 하며 로그인이 안 됩니다

그렇다고 제가 계속 비밀번호를 틀리게 적는것도 아닌데 말입니다... DB를 oracle로 했던 소스들을 mysql로 바꿨을 뿐인데 쿼리문에서 문제가 생긴걸까요?

  • (•́ ✖ •̀)
    알 수 없는 사용자
  • dbPW = rs.getString("password"); 후에 dbPW와 password를 출력했을때 눈으로 보기엔 같은 값인가요? 편집요청빌런 2020.4.29 19:53
  • 방금 확인을 해봤는데 같은 값으로 나옵니다 ㅠ 알 수 없는 사용자 2020.4.29 20:05
  • 엇 또 방금 확인하니 password가 null로 나오네요...? 알 수 없는 사용자 2020.4.29 20:09
  • 와! MemberLoginAction에 String password = request.getParameter("passwrod");에 오타가 있어서 그랬어요! 몇 번이나 봤다고 생각했는데 오타가 있었네요!! ㅠㅠ 알 수 없는 사용자 2020.4.29 20:23
  • 오 잘됐군요. 비밀번호 단방향 암호화 처리는 곧 구현하시는거죠? 엽토군 2020.4.29 21:16
  • 아직 비밀번호 암호화는 한번도 해본적이 없어서 ㅠㅠ 하지만 곧 해보겠습니다! 알 수 없는 사용자 2020.4.29 22:17
  • 👍 편집요청빌런 2020.4.30 00:09

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)