Today I Learned …
[웹개발] 게시글 삭제 기능 본문
* 개인적인 공부 내용을 기록한 글입니다.
최종 화면
이전 포스팅
https://choco4study.tistory.com/56
게시글 삭제 기능
0. 요약
[1] 작성자가 게시글을 조회하는 경우에만 [삭제] 버튼이 나타나게끔 구현한다.
[2] [삭제] 버튼을 클릭하면 게시글을 삭제한다.
1. 다음은 게시글 조회 페이지를 출력하는 view.php에 추가해줄 내용이다.
<?php
if($_SESSION['user_id'] == $res_view['writer']){ ?>
<div class=mine>
<button class=write onclick="window.location.href='update.php?id=<?=$res_view['id']?>'" type="button">수정</button>
<button class=write onclick="window.location.href='remove_ok.php?id=<?=$res_view['id']?>'" type="button">삭제</button>
</div>
<?php } ?>
[1] 현재 로그인하고 있는 사용자가 해당 게시글의 작성자일 경우,
[2] [삭제] 버튼을 출력한다.
[3] [삭제] 버튼을 클릭하면 remove_ok.php로 넘겨주고, 동시에 GET으로 해당 게시글의 식별자 (= id) 를 전달해준다.
2. 다음은 게시글 삭제를 실질적으로 처리할 remove_ok.php의 내용이다.
<?php
session_start();
$conn = mysqli_connect('localhost', 'choco', '7173', 'study_login');
$id = $_GET['id'];
$sql_check = "SELECT * FROM board WHERE id=$id";
$res_check = mysqli_fetch_array(mysqli_query($conn, $sql_check));
if($_SESSION['user_id'] != $res_check['writer']){
echo "<script>alert('권한이 없습니다!');";
echo "window.history.back()</script>";
exit;
}
$sql = "
DELETE FROM board WHERE id=$id;
DELETE FROM like_manager WHERE like_post_id=$id;
";
$res = mysqli_multi_query($conn, $sql);
echo "<script>alert('게시글이 삭제되었습니다!');";
echo "window.location.replace('board.php');</script>";
?>
[1] GET으로 넘겨받은 해당 게시글의 식별자 (= id) 를 $id에 할당해준다.
[2] 현재 사용자가 해당 게시글의 작성자가 아닐 시, alert를 출력하고 exit 해준다.
[3] 이상 없을 시, 해당 게시글을 delete 해주고 게시글 목록으로 돌아간다.
[4] 파일을 첨부한 게시글일 경우, 파일이 서버의 폴더에 저장되기 때문에 삭제 시에는 서버에 있는 해당 파일까지 깔끔하게 삭제해줘야하는 것이 원칙이다...
[5] 이건 나중에 해보도록 하겠다... 오늘은 여기서 끝!
'Web > APM' 카테고리의 다른 글
[웹개발] 마이페이지 비밀번호 변경 기능 (0) | 2021.11.13 |
---|---|
[웹개발] 마이페이지 개인 정보 조회 및 수정 기능 (0) | 2021.11.12 |
[웹개발] 게시글 수정 기능 (2) | 2021.11.07 |
[웹개발] 조회수/좋아요(취소 포함) 기능 (0) | 2021.11.03 |
[웹개발] 파일 업로드/다운로드 기능 (0) | 2021.11.02 |
Comments