반응형
삭제하기도 마찬가지다. 본인글인지 확인 후 삭제처리하면 된다.
delete.php
<?php session_start();
include $_SERVER["DOCUMENT_ROOT"]."/inc/dbcon.php";
if(!$_SESSION['UID']){
echo "<script>alert('회원 전용 게시판입니다.');location.href='/index.php';</script>";
exit;
}
$bid=$_POST["bid"]??$_GET["bid"];//post가 아니면 get으로 받는다
if($bid){
$result = $mysqli->query("select * from board where bid=".$bid) or die("query error => ".$mysqli->error);
$rs = $result->fetch_object();
if($rs->userid!=$_SESSION['UID']){
echo "<script>alert('본인 글이 아니면 삭제할 수 없습니다.');location.href='/';</script>";
exit;
}
$sql="update board set status=0 where bid=".$bid;//status값을 바꿔준다.
$result=$mysqli->query($sql) or die($mysqli->error);
}else{
echo "<script>alert('삭제할 수 없습니다.');history.back();</script>";
exit;
}
if($result){
echo "<script>alert('삭제했습니다.');location.href='/index.php';</script>";
exit;
}else{
echo "<script>alert('글삭제에 실패했습니다.');history.back();</script>";
exit;
}
?>
게시글 삭제는 delete문을 쓰지 않고 상태값을 바꿔주는 것으로 update문을 썼다. 이렇게 해주면 삭제해도 리스트에 나타난다. index.php파일을 조금 수정해보자.
index.php
<?php
include $_SERVER["DOCUMENT_ROOT"]."/inc/header.php";
$result = $mysqli->query("select * from board where status=1 order by bid desc") or die("query error => ".$mysqli->error);
while($rs = $result->fetch_object()){
$rsc[]=$rs;
}
?>
<table class="table">
<thead>
<tr>
<th scope="col">번호</th>
<th scope="col">글쓴이</th>
<th scope="col">제목</th>
<th scope="col">등록일</th>
</tr>
</thead>
<tbody>
<?php
$i=1;
foreach($rsc as $r){
?>
<tr>
<th scope="row"><?php echo $i++;?></th>
<td><?php echo $r->userid?></td>
<td><a href="/view.php?bid=<?php echo $r->bid;?>"><?php echo $r->subject?></a></td>
<td><?php echo $r->regdate?></td>
</tr>
<?php }?>
</tbody>
</table>
<p style="text-align:right;">
<?php
if($_SESSION['UID']){
?>
<a href="write.php"><button type="button" class="btn btn-primary">등록</button><a>
<a href="/member/logout.php"><button type="button" class="btn btn-primary">로그아웃</button><a>
<?php
}else{
?>
<a href="/member/login.php"><button type="button" class="btn btn-primary">로그인</button><a>
<a href="/member/signup.php"><button type="button" class="btn btn-primary">회원가입</button><a>
<?php
}
?>
</p>
<?php
include $_SERVER["DOCUMENT_ROOT"]."/inc/footer.php";
?>
게시물을 가져오는 쿼리도 변경했다.
게시물이 삭제된 것들은 status를 0으로 바꿨으니 status가 1인것들만 가져온다. 그리고 최신글이 위로 올라오도록 order by를 추가했다.
반응형
'PHP강좌 > 게시판만들기강좌' 카테고리의 다른 글
php+mysql 게시판 만들기 강좌 #15. 회원 게시판 - 답글 달기 (0) | 2022.01.30 |
---|---|
php+mysql 게시판 만들기 강좌 #14. 회원 게시판 - 검색하기 (1) | 2022.01.30 |
php+mysql 게시판 만들기 강좌 #12. 회원전용게시판 - 수정하기 (3) | 2022.01.27 |
php+mysql 게시판 만들기 강좌 #11. 회원전용게시판 - 글쓰기 (0) | 2022.01.26 |
php+mysql 게시판 만들기 강좌 #10. 회원전용게시판 - 로그아웃 (0) | 2022.01.26 |