웹마스터 팁

안녕하세요!!
게시판내용에 코멘트를 달자!!
강좌했던 사람입니다. ^^
제가 깜빡하고 넣지 않았던 코멘트에 비밀번호넣고 삭제시 인증거치는 소스를 공개하고자 이렇게 다시 강좌를
올립니다. ^^;;
먼저 코멘트에 비번을 넣을 수 있는 곳을 만들어야 겠죠..
그리고, 그 비번이 db에 저장될수 있도록 코멘트가 저장되는
db테이블(저는 board_dap이라고 만들었습니다.)에 필드를
하나 추가 합니다.

필드 추가부분 (저같은 경우 이름이 들어가는 다음에 필드를 추가했습니다.)

pass varchar(30) NOT NULL  <- 이렇게 추가합니다.


read.php(글읽기 부분)에서의 추가 변경사항입니다.

요부분에서는 pass를 추가합니다.
$res_dap = mysql_query("SELECT id, name, pass, comment FROM board_dap where bbs_id='$row[id]' ORDER BY id DESC", $conn);

아랫부분은 추가해주시고요
$dap_id = mysql_result($res_dap, $i, "id");
$name = mysql_result($res_dap, $i, "name");
$pass = mysql_result($res_dap, $i, "pass");  //이 줄이 추가된 부분입니다.
$comment = mysql_result($res_dap, $i, "comment");


그리고 코메트 삭제시 링크걸어 주었던 부분을

<a href=board_dap.php?dap_id=$dap_id&id=$row[id]><img src='../images/button_img15.gif' border=0></a>

이것을

<a href=predel_dap.php?dap_id=$dap_id&id=$id><img src='../images/button_img15.gif' border=0></a>

이렇게 바꿉니다.

그리고 코멘트이름과 내용을 쓰는 부분에 패스워드가 들어갈 부분을 추가합니다.
<font size="2" color="#999999">비밀번호</font>  <input type=password name=pass style="border:1 solid #999999; background:#ffffff; height:15px" size="7">
이렇게요...
그럼 글읽기페이지부분은 끝이 났습니다.

이제 코멘트삭제시 링크되었던 predel_dap.php(페이지이름은 여러분 마음입니다. 꼭 이름으로 않하셔두 돼요)
을 살펴보도록 하겠습니다.


============= predel_dap.php ================================
<html>
<head>
<title>계층형 게시판</title>
<style>
<!--
td { font-size : 9pt; }
A:link { font : 9pt; color : black; text-decoration : none; font-family : 굴림; font-size : 9pt; }
A:visited { text-decoration : none; color : black; font-size : 9pt; }
A:hover { text-decoration : underline; color : black; font-size : 9pt; }

-->
</style>
</head>

<body topmargin=0 leftmargin=0 text=#464646>

<center>
<BR>

/*-----------------------------------------------
게시판의 글번호와 코메트글번호를 넘겨 줍니다.
코멘트답글이 id가 아니고 왜 dap-id이나면 위 read.php
에서 보시면
$dap_id = mysql_result($res_dap, $i, "id");
이런 부분이 있습니다.
즉 답글의 id를 dap_id로 변경을 한것이죠 ^^;
------------------------------------------------*/

<!-- 입력된 값을 다음 페이지로 넘기기 위해 FORM을 만든다. -->
<form action=del_dap.php?dap_id=<?=$dap_id?>&id=<?=$id?> method=post>

<table width=300 border=0 cellpadding=2 cellspacing=1 bgcolor=#777777>
<tr>
<td height=20 align=center bgcolor=#999999>
<font color=white><B>비 밀 번 호 확 인</B></font>
</td>
</tr>
<tr>
<td align=center >
<font color=white><B>비밀번호 : </b>
<INPUT type=password name=pass size=8 maxlength=8>
<INPUT type=submit value="확 인">
<INPUT type=button value="취 소" onclick="history.back(-1)">
</td>
</tr>
</table>
</body>
</html>

뭐 나머지부분은 특별한 부분이 없습니다.

그럼 바로 삭제를 실제로 처리하는 del_dap.php 소스를 살펴보겠습니다.
============= del_dap.php ================================
<?
//데이터 베이스 연결하기

$board = "db테이블이름"; //답글에 대한 테이블명 (저의 경우 board_dap 이겠죠)
$conn = mysql_connect("localhost","db아이디","db비번");
mysql_select_db("db이름", $conn);

$result=mysql_query("select pass from $board where id=$dap_id", $conn); //각번호에 대한 패스워드 추출
$row=mysql_fetch_array($result);

if ($pass==$row[pass] ){ //만약 패스워드가 맞다면
mysql_query(" DELETE FROM $board WHERE id=$dap_id ", $conn);  //코멘트 삭제처리
mysql_query("UPDATE 게시판db테이블 SET comm_su=comm_su-1 WHERE id='$id'", $conn); //코멘트수 하나를 뺀다
echo("
   <meta http-equiv='Refresh' content='0; URL=read.php?id=$id'> //삭제후 돌아갈곳
");
}
else  // 만약 패스워드가 틀리다면..
{
echo ("
<script>
alert('비밀번호가 틀립니다.');
history.go(-1);
</script>
");
exit;
}
?>

자~~ 이로써 코멘트달기의 모든 걸 마쳤습니다 ^^;;
제가 이런건 처음이라 잘됐는지 모르겠네요
적극적인 딴지 부탁드립니다. ^^