AR삽질러

JSP 개인프로젝트(6) - 회원탈퇴 본문

JAVA/JSP

JSP 개인프로젝트(6) - 회원탈퇴

아랑팡팡 2023. 2. 17. 18:22
728x90

https://arang95.tistory.com/42

 

JSP 개인프로젝트(5) - 회원정보수정

https://arang95.tistory.com/40 JSP 개인프로젝트(4) - 회원가입완성, 로그인구현 https://arang95.tistory.com/34 JSP 개인프로젝트(3) - 로그인, 회원가입 https://arang95.tistory.com/31 JSP 개인프로젝트(2) 회원테이블생성

arang95.tistory.com

지난시간에는 로그인, 회원가입, 회원수정, 로그아웃 까지 구현하였고

이번시간에는 회원탈퇴를 삽질해볼시간이다.

 

DAO : 

VO  : MemberVO

JSP : 

 

회원탈퇴기능 

 - 회원탈퇴기능은 로그인화면에서 회원탈퇴로 들어가면 비밀번호로 본인인증 후 입력한 회원정보와 일치하면 회원탈퇴가 되도록 구현. 회원탈퇴 버튼을 누르고 본인인증 비밀번호가 true면 정상처리 false면 정보오류로 비밀번호 불일치를 띄워준다. 그리고 취소를 누르게 되면 회원탈퇴가 취소되므로 다시 메인페이지로 돌아간다.

 

 

1. deleteForm  회원탈퇴폼

회원로그인후 탈퇴 -> 아이디는 나오고 비밀번호 입력창 추가

script 비밀번호를 입력하지않고 회원탈퇴 클릭시 경고창 추가

<%
		String id = (String)session.getAttribute("id");
		MemberVO vo = dao.getMember(id);
		
	%>
	<nav class="navbar navbar-default">
	 <div class="navbar-header">
	  <button type="button" class="navbar-toggle collapsed"
	  	data-toggle="collapse" data-target="#bs-example-navbar-collapse-1"
	  	aria-expanded="false">
		 	<span class="icon-bar"></span>
		 	<span class="icon-bar"></span>
		 	<span class="icon-bar"></span>
		 </button>
		 <a class="navbar-brand" href="main.jsp">AR 웹페이지</a>
		</div>
		<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
		 <ul class="nav navbar-nav">
		  <li class="active"><a href="main.jsp">메인</a>
		 </ul>
		 
		 <ul class="nav navbar-nav navbar-right">
		  <li class="dropdown">
		   <a href="#" class="dropdown-toggle"
		   	data-toggle="dropdown" role="button" aria-haspopup="true"
		   	aria-expanded="false"><%=id %>님 환영합니다.<span class="caret"></span>
		   </a>
		   <ul class="dropdown-menu">
		   	<li><a href="logoutAction.jsp">로그아웃</a></li>
		   	<li><a href="modifyForm.jsp">회원정보수정</a></li>
		   	<li><a href="deleteForm.jsp">회원탈퇴</a></li>
		   </ul>
		  </li>
		 </ul>
		</div>
	</nav>
	<div class="container">
	 <form method="post" action="deleteProc.jsp" name="delete" onsubmit="return checkPass()">
	  <table class="table table-bordered table-hover" style="text-align: center; border: 1px solid #ddddddd">
	   <thead>
	    <tr>
	     <th colspan="3"><h4>회원탈퇴</h4></th>
	    </tr>
	   </thead>
	    <tbody>
	    <tr>
	      <td style="width:110px;"><h5>아이디</h5></td>
	      <td><h5><%=vo.getId() %></h5>
	      <input type="hidden" name="id" value="vo.getId()%>"></td>
	     </tr>
		 <tr>
	      <td style="width:150px;"><h5>비밀번호입력 : </h5></td>
	      <td colspan="3"><input class="form-control" id="userPassword1" type="password" name="pass" maxlength="20" placeholder="비밀번호를 입력하세요."></td>
	     </tr>
	   	<tr>
			<td colspan="2" align="center">
			<input class="btn btn-primary" type="button" value="회원탈퇴" onClick="inputCheck()"/>&nbsp;&nbsp;
			<input class="btn btn-primary" type="reset" value="취소" onclick="javascript:window.location='main.jsp'">
			</td>
			<td style="text-align: left;" colspan="3"><h5 style="color: red;" id="passwordCheckMessage"></h5>   
		</tr>				
  			</tbody>
  		</table>
	</form>
  </div>
</body>
</html>

 

2. deleteMember

회원가입의 결과를 1 or -0로 받아 성공시 1 실패시 0으로 구현한다.

로그인된 회원아이디를 검색해 해당 아이디와 db에 저장된 비밀번호를 확인해서 일치하는지 확인한다.

public int deleteMember(String id, String pass) {
		Connection conn = null;
		PreparedStatement pstmt = null;
		ResultSet rs = null;
		String dbPass = "";  // db에 저장된 비밀번호
		int result = -1;
		try {
			conn = getConnection();
			pstmt = conn.prepareStatement("select pass from member where id=? ");
			pstmt.setString(1, id);
			rs = pstmt.executeQuery();
			if(rs.next()) {
				dbPass = rs.getString("pass");
				if(dbPass.equals(pass)) {
					pstmt = conn.prepareStatement("delete from member where id = ?");
					pstmt.setString(1, id);
					pstmt.executeUpdate();
					result = 1; // 회원탈퇴 성공
				}else {
					result = 0;
				}
			}
		}catch(Exception e) {
			e.printStackTrace();
		}finally {
			if(rs!= null)try {rs.close();}catch(SQLException e) {}
			if(pstmt!= null)try {pstmt.close();}catch(SQLException e) {}
			if(conn!= null)try {conn.close();}catch(SQLException e) {}
		}
		return result;
	}

 

3. deleteProc 회원탈퇴완료폼

회원탈퇴클릭시 비밀번호 불일치나 미입력시 경고창 추가

아이디.equlse(비번)일시 성공적으로 invalidate() 된뒤 클릭하면 다시 메인화면으로 돌아간다.

<meta charset="UTF-8">
<title>회원탈퇴 완료</title>
<link href="style.css" rel="stylesheet" type="text/css">
<% 
	String id = (String)session.getAttribute("id");
	String pass = request.getParameter("pass");
	int flag = dao.deleteMember(id, pass);
	if(flag == 1){
		session.invalidate();
%>
<body bgcolor="#FFFFCC">
<center>
	<font size="5" face="바탕체">
		
		<br><h3>회원탈퇴가 되었습니다.</h3>
		<h3>그동안 ARService를 이용해주셔서 감사합니다.</h3>
		<a href=main.jsp>ARService</a>
	</font>
</center>
	<%}else{ %>
	<script type="text/javascript">
		alert("비밀번호가 일치하지 않습니다!");
		history.go(-1);
	</script>	
	<%} %>
</body>
</html>

 

4. 구현영상

 

 

다음시간에는 지금까지 구현한 코드들을 깔끔하게 수정하고 다른 창을 열어도 하나의 객체만 생성할 수 있도록 구현해보고 게시판을 만들어보겠다.

728x90
반응형
LIST