이 글은 이곳을 참고하여 쓰여졌습니다.
이번에는 글 수정과 삭제, 그리고 내가 따로 만든 추천수 기능을 추가할 것이다.
일단 글 수정을 위한 modify.php 파일을 작성한다.
<!--- 게시글 수정 -->
<?php
include $_SERVER['DOCUMENT_ROOT']."/BBS/db.php";
$bno = $_GET['idx'];
$sql = query("select * from board where idx='$bno';");
$board = $sql->fetch_array();
?>
<!doctype html>
<head>
<meta charset="UTF-8">
<title>게시판</title>
<link rel="stylesheet" href="/BBS/css/style.css" />
</head>
<body>
<div id="board_write">
<h1><a href="/">자유게시판</a></h1>
<h4>글을 수정합니다.</h4>
<div id="write_area">
<form action="modify_ok.php?idx=<?php echo $bno; ?>" method="post">
<div id="in_title">
<textarea name="title" id="utitle" rows="1" cols="55" placeholder="제목" maxlength="100" required><?php echo $board['title']; ?></textarea>
</div>
<div class="wi_line"></div>
<div id="in_name">
<textarea name="name" id="uname" rows="1" cols="55" placeholder="글쓴이" maxlength="100" required><?php echo $board['name']; ?></textarea>
</div>
<div class="wi_line"></div>
<div id="in_content">
<textarea name="content" id="ucontent" placeholder="내용" required><?php echo $board['content']; ?></textarea>
</div>
<div id="in_pw">
<input type="password" name="pw" id="upw" placeholder="비밀번호" required />
</div>
<div class="bt_se">
<button type="submit">글 작성</button>
</div>
</form>
</div>
</div>
</body>
</html>
Form 자체는 저번에 작성한 write.php와 비슷하다. form action = "..." 구문을 통해 수정된 값들을 받아 POST 방식으로 modify_ok.php에 전달하는 방식이다.
그리고 이제 수정된 정보를 받아 db에 반영하는 modify_ok.php 를 작성한다.
<?php
include $_SERVER['DOCUMENT_ROOT']."/BBS/db.php";
$bno = $_GET['idx'];
$username = $_POST['name'];
$userpw = password_hash($_POST['pw'], PASSWORD_DEFAULT);
$title = $_POST['title'];
$content = $_POST['content'];
$sql = query("update board set name='".$username."',pw='".$userpw."',title='".$title."',content='".$content."' where idx='".$bno."'"); ?>
<script type="text/javascript">alert("수정되었습니다."); </script>
<meta http-equiv="refresh" content="0 url=/BBS/index.php">
이렇게 작성하고 저장한 뒤 게시판에 접속한다.
아무 글이나 잡고 수정을 선택하면
이렇게 글을 수정하는 페이지가 정상적으로 출력된다.
아무렇게나 수정하고 글 작성을 선택한다.
그러면 이렇게 수정되었다는 메시지가 출력되고, index.php로 돌아가게 된다.
글을 확인해보면 수정이 정상적으로 완료된 것을 확인 할 수 있다.
이제 삭제 기능을 구현할 것이다.
삭제 기능은 꽤 간단한데, delete.php를 만들기만 하면 된다.
<?php
include $_SERVER['DOCUMENT_ROOT']."/BBS/db.php";
$bno = $_GET['idx'];
$sql = query("delete from board where idx='$bno';");
?>
<script type="text/javascript">alert("삭제되었습니다.");</script>
<meta http-equiv="refresh" content="0 url=/BBS/index.php" />
$bno 변수에 idx를 받아와 저장하고, 쿼리로 idx가 $bno와 같은 row를 삭제하라고 명령한 뒤 index.php로 돌아가게 설정한다.
이제 게시판에서 아무 글이나 들어가서 삭제를 선택해본다.
삭제되었다는 메시지가 출력되면서,
정상적으로 삭제된 것을 확인할 수 있다. 그런데 이걸 진행하다가 한가지 문제점을 발견했다.
내가 추가한 추천수 항목과 조회수 항목이 보여주는 값이 바뀌어 있다. 즉 추천수 항목에서 조회수를 보여주고, 조회수 항목에서 추천수를 보여주고 있었다.
index.php를 수정하면 된다.
조회수 와 추천수의 순서를 바꾸어 해결했다.
이제 추천하기 기능을 만들 것이다.
일단 read.php를 통해 [추천]버튼을 만들고, 글 상단에 추천수를 표시한다.
그리고 간단한 thumbup.php 파일을 작성한다.
<?php
include $_SERVER['DOCUMENT_ROOT']."/BBS/db.php";
$bno = $_GET['idx'];
$thumbup = mysqli_fetch_array(query("select thumbup from board where idx='$bno';"));
$thumbup = $thumbup['thumbup'] + 1;
query("update board set thumbup=".$thumbup." where idx=".$bno.";");
?>
<script type="text/javascript">alert("추천되었습니다.");</script>
<meta http-equiv="refresh" content="0 url=/BBS/index.php" />
read.php로부터 idx값을 전달받아 $bno 변수에 저장한 후 쿼리문 두 번을 통해 추천수 값을 1 늘린다.
지금은 로그인 기능이 없어서 무한 추천이 가능하지만 나중에는 계정별로 추천 여부 변수를 만들어서 진행해야 할 것 같다.
이렇게 작성하고 아무 글이나 들어가서 추천을 누르면,
추천되었다는 메시지와 함께 추천수가 올라간 것을 확인할 수 있다.
다음에는 글 잠금 기능을 만들어 봐야겠다.
'따라 공부하기 > PHP게시판 따라하기' 카테고리의 다른 글
[PHP+MySQL]게시판 만들기 6 - 댓글 작성 기능 (1) | 2020.12.05 |
---|---|
[PHP+MySQL]게시판 만들기 5 - 글 잠금 기능 (1) | 2020.12.04 |
[PHP+MySQL]게시판 만들기 3 - 글작성과 글 읽기 (5) | 2020.12.02 |
[PHP+MySQL]게시판 만들기 2 - 글list 출력 (4) | 2020.12.01 |
[PHP+MySQL]게시판 만들기 1 - 개발환경 구축과 DB설계 (7) | 2020.11.30 |
댓글