[회원가입 사이트 만들기] 8. 게시판 글 수정/삭제

2024. 4. 11. 11:05복습/인터넷 보안 실습

기본 페이지 수정 (default.asp)

 

현재 기본페이지에는 ㅇㅇㅇ님 로그인 되었습니다 밖에 뜨지 않는다.

 

이제 그 아래에 게시판을 구현해주기 위해 

 

asp에 아래 구문을 추가해준다.

 

	 <%
	SQL = "select * from board order by bno desc" 'board(게시글) table의 모든 정보를 bno기준 내림차순으로 출력하는 구문
	Set rs = dbconn.execute(sql) '위의 구문을 실행

	if rs.BOF and rs.EOF then 'BOF와 EOF가 같으면 데이터가 없는 것이므로, 데이터가 없다고 알려줌
	response.write "데이터가 없습니다."	
	else %>
	 <table style="width 600px;">
<tr>
<th>번호</th>
<th>제목</th>
<th>날짜</th>
<th>userid</th>
<th>조회수</th>
</tr>
<%do until rs.eof 'do until, loop 를 이용해 객체의 끝에 도달할 때까지 테이블이 만들어지도록 함 %> 
<tr>
<td style="width:100px;"><%=rs("bno")%></td>
<td style="width:300px;"><a href="bView.asp?bidx=<%=rs("bidx")%>"><%=rs("title")%></a></td>
<td style="width:100px;"><%=Left(rs("wdate"),10)%></td>
<td style="width:100px;"><%=rs("name")%></td>
<td style="width:100px;"> <%=rs("readno")%></td>
</tr>
<%rs.movenext
Loop %>
</table>
	
	 
	<%end if%>

 

그리고 write.asp 에 가서 게시글을 작성해주면

 

아래와 같이 게시판이 생길 것이다.

 

게시판 글 수정 (bEdit.asp), (bEdit_go.asp)

 

게시판 글 수정을 위해서는 두 개의 파일이 필요하다 (bEdit.asp, bEdit_go.asp)

 

 

bEdit.asp 는 html 을 이용해 아래와 같이 수정 화면을 구현해주고, form 태그의

 

method를 이용해 작성된 정보를 bEdit_go.asp로 정보를 넘겨준다.

 

bEdit.asp의 html 코드를 이용해 구현된 화면

 

 

bEdit_go.asp는 bEdit.asp에서 넘어온 정보를 DB로 넘겨주는 역할을 하는데,

 

DB에 있는 글 패스워드와 작성된 글 패스워드가 같은지 확인하는 구문도 작성해주어야 한다.

 

	' bEdit.asp 의 form 태그에서 데이터를 받아온 뒤, 변수에 저장
   bidx = request.form("bidx")
   email = request.form("email")
   title = request.form("title")
   bContent = request.form("content")
   pwd = request.form("pwd")

   sql = "select * from board where bidx = "&bidx ' 현재 글 번호와 같은 글을 DB에서 찾아준 뒤,
   set rs = dbconn.execute(sql)
   
   'DB에 저장된 글 비밀번호와 작성된 비밀번호 비교 
     if pwd = rtrim(rs("pwd")) then 
	 
	    '비밀번호 일치할 경우 bEdit.asp에서 받아온 정보를 DB에 넘김
		sql = "update board set email='"&email&"', title='"&title&"',bcontent='"&bcontent&"' where bidx="&bidx
		dbconn.execute(sql)
%>
        <script>
		   alert("글이 수정되었습니다");
		   location.href ="default.asp";
		</script>
     
    <%else '글 비밀번호가 일치하지 않을 경우 %>
        <script>
		  alert("비밀번호가 일치하지 않습니다.");
		  history.back();
		</script>

 

이렇게 하면 글이 성공적으로 수정되는 것도 확인할 수 있다.

 

 

게시글 삭제 (bDel.asp)

 

게시글은 현재 로그인 된 사람의 id와 글 작성자의 id가 일치한 경우에만

 

삭제 권한을 주도록 할 것이다.

 

html로 아래와 같이 화면이 나오도록 간단하게만 작성해주고, 

 

 

삭제를 클릭하면 sendit() 함수로 이동하고,

 

sendit 함수는 현재 로그인된 사용자의 id(세션 id)와

 

글 작성자의 id가 일치하는지 확인해주기 위해 

 

<% if session("id") = rs("name") then  
sql = "delete from board where bidx=" & bidx
dbconn.execute(sql) %>

alert("게시글이 삭제되었습니다.");
location.href="default.asp";

 

이렇게 if문을 작성해준다. 

 

if문 조건에 성립하면

 

sql문의 delete문을 이용해 해당 글 번호의 글을 지워주고

 

게시글 삭제되었다는 알림을 띄워준 뒤

 

default.asp 페이지로 이동해주도록 한다. 

 

<% else %>
alert("작성자만 글을 삭제할 수 있습니다.");
location.href="default.asp";
<% end if %>

 

id가 다르다면 글을 삭제해주지 않고

 

알림창만 띄워주도록 한다.