반응형

 

 

삭제하기도 마찬가지다. 본인글인지 확인 후 삭제처리하면 된다.

 

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를 추가했다.

반응형

+ Recent posts