[회원가입 사이트 만들기] 6. 회원 정보 수정/ 탈퇴

2024. 4. 3. 00:50복습/인터넷 보안 실습

회원정보 수정 (mem_edit.asp)

 

이제 회원 정보 수정 페이지(mem_edit.asp)를 만들어주어야 하는데,

 

member.html 코드를 복사해준 뒤 조금만 수정해주면 되므로 간단하다.

 

우선 구현된 모습을 먼저 확인해보겠다.

 

 

이런 식으로, 회원 이름과 userID는 수정이 불가능하게 고정시켜두고

 

나머지 정보는 수정할 수 있도록 구현해야 한다.

 

또한, 수정된 정보는 정상적으로 DB에 반영되어야 한다.

 

 

기본 틀은 member.asp와 같으므로 복붙해주고,

 

form 태그의 action을 mem_edit_reg.asp로 바꾸어준다.

 

후에 작성할 mem_edit_reg.asp 코드는

 

전에 작성했던 mem_regist.asp 처럼 form 태그에 입력된 데이터를 DB로 옮겨주는 역할을 한다.

 

그리고, 이름과 아이디 정보를 db에서 가져오기 위해 

 

<%
if session("id")="" then %>
<script>
alert("접근할 수 없는 페이지 입니다.");
</script>
<% else 
      set dbconn = server.createobject("ADODB.Connection")
	  dbconn.open "provider=sqloledb;user id=sa;password=db비밀번호;initial catalog=DB명;data source=(local);"
	 
      sql = "select * from member where userid='"&session("id")&"'"
	  set rs = dbconn.execute(sql)
%>

 

다음 코드를 이용해 DB와 연동해주고,

 

<tr>
<td style= "background-color:darkblue; text-align:center; color:white;">회원이름</td>
<td style= "background-color:skyblue;"><%=rs("name")%> </td>
</tr>
<tr>
<td style= "background-color:darkblue; text-align:center; color:white;">UserID</td>
<td style= "background-color:skyblue;"><%=rs("userid")%> </td>
</tr>

 

회원 이름과 id의 input 태그를 지워준 뒤,

 

rs를 이용해 db값을 불러와주면 된다. 

 

 

회원정보 수정 mem_edit_reg.asp

 

다음으로 mem_edit_reg.asp 코드를 작성해야한다.

 

mem_edit.asp에서 넘어온 회원이 누군지를 알아야 하므로

 

mem_edit.asp에 아래와 같은 코드롤 입력하여 

 

겉으로 드러나지 않게 mem_idx를 넘겨준다.

	   <INPUT type="hidden" name="mem_idx" value="<%=rs("mem_idx")%>">

 

그럼 mem_edit_reg.asp에서는 그 값을 받아 확인하고 해당 회원의 정보를 가져온다.

	 sql = "select * from member where mem_idx ="&mem_idx
	 set rs = dbconn.execute(sql)

 

이 회원이 입력한 패스워드가 올바를 경우에만 정보를 수정할 수 있도록

 

if 문을 이용해 아래와 같이 코드를 작성해준다.

<%
if pwd =  rtrim(rs("pwd")) then 
sql = "update member set email='"
sql = sql &email&"', phone='"
sql = sql &phone&"',addr='"
sql = sql &addr&"' where mem_idx=" &mem_idx
		
dbconn.execute(sql)
%>

 

 

회원 탈퇴 mem_del.asp

 

회원 탈퇴도 파일 두 개로 이루어진다.

 

우선 탈퇴 페이지를 html 코드로 짜준다. (접근제어를 걸어줘도 좋다)

 

    <HTML>
	  <HEAD>
	    <script>
		   function sendit()
		   {
		        if(confirm("정말로 탈퇴하시겠습니까?"))
				   location.href="mem_del_go.asp";		      
		   }
		</script>
	  </HEAD>
	  <BODY> <CENTER>
	     <H1> 회 원 탈 퇴</H1>
		 <BR>
		 <TABLE style="width:500px;height:300px;border:1px solid;border-collapse:collapse;">
		    <TR>
			<TD style="text-align:center;">
			<H4 style="color:red;">회원 탈퇴 신청에 앞서 아래 사항을 확인바랍니다.</H4>
			</TD>
			</TR>
		 </TABLE>	
         <br>
         <A href="#" onclick="sendit();">탈퇴</A>&nbsp;&nbsp;&nbsp;<A href="#">취소</A>		 
	  </CENTER>
	  </BODY>
	</HTML>

 

 

그럼 이런 화면을 얻을 수 있다.

 

회원 탈퇴 mem_del_go.asp

 

이제 탈퇴를 누르면 정말 회원 정보가 삭제되도록

 

mem_del_go.asp 코드를 작성해주어야 한다.

 

우선 DB를 연동해주고,

 

  sql = "delete from member where userid='"&session("id")&"'"
	  dbconn.execute(sql)
      
	  session.abandon

 

탈퇴를 시도한 회원의 아이디를 확인한 뒤, DB에서 정보가 삭제되도록

 

delete 문을 이용해준다.

 

또한, 세션을 종료시키기 위해 session.abandon 을 적어주면 된다.