본문 바로가기
따라 공부하기/PHP게시판 따라하기

[PHP+MySQL]게시판 만들기 5 - 글 잠금 기능

by DawIT 2020. 12. 4.
320x100

이 글은 이곳을 참고하여 만들어졌습니다.

 

오늘은 글을 비공개글로 만들수 있고, 그렇게 설정할 시 list에서 글 선택시 비밀번호를 입력해야 글을 조회할 수 있도록 만들 것이다.

 

 

일단 board 컬럼에 lock_post를 추가해준다. INT 형식으로 지정해준다.

 

 

그 뒤 write.php에 글 잠그기 checkbox를 위한 구문을 추가해준다.

 

 

write_ok.php 에도 lock_post값을 받아 $lo_post 변수에 저장하고, 쿼리문에도 추가해준다.

 

 

index.php에도 게시글을 잠구기 위한 코드를 추가해준다.

 

이 코드에 따라 잠긴 글이라면 ck_read.php 로 이동된다. 해당 php코드를 작성한다.

 

<?php
include $_SERVER['DOCUMENT_ROOT']."/BBS/db.php"; /* db load */
?>
<link rel="stylesheet" type="text/css" href="/BBS/css/jquery-ui.css" />
<script type="text/javascript" src="/BBS/js/jquery-3.2.1.min.js"></script>
<script type="text/javascript" src="/BBS/js/jquery-ui.js"></script>
<script type="text/javascript">
	$(function(){
		$("#writepass").dialog({
		 	modal:true,
		 	title:'비밀글입니다.',
		 	width:400,
	 	});
	});
</script>
<?php

$bno = $_GET['idx']; /* bno함수에 idx값을 받아와 넣음*/
$sql = query("select * from board where idx='".$bno."'"); /* 받아온 idx값을 선택 */
$board = $sql->fetch_array();

?>
<div id='writepass'>
	<form action="" method="post">
 		<p>비밀번호<input type="password" name="pw_chk" /> <input type="submit" value="확인" /></p>
 	</form>
</div>
	 <?php
	 	$bpw = $board['pw'];

	 	if(isset($_POST['pw_chk'])) //만약 pw_chk POST값이 있다면
	 	{
	 		$pwk = $_POST['pw_chk']; // $pwk변수에 POST값으로 받은 pw_chk를 넣습니다.
			if(password_verify($pwk,$bpw)) //다시 if문으로 DB의 pw와 입력하여 받아온 bpw와 값이 같은지 비교를 하고
			{
				$pwk == $bpw;
			?>
				<script type="text/javascript">location.replace("read.php?idx=<?php echo $board["idx"]; ?>");</script><!-- pwk와 bpw값이 같으면 read.php로 보내고 -->
			<?php 
			}else{ ?>
				<script type="text/javascript">alert('비밀번호가 틀립니다');</script><!--- 아니면 비밀번호가 틀리다는 메시지를 보여줍니다 -->
			<?php } } ?>

 

비밀글 클릭시 idx를 받아와서 비밀번호 선택 창을 띄운다.

 

이때 입력된 비밀번호를 pw_chk 로 받아와서 $pwk 변수에 저장한 다음 이전에 저장해 두었던 $bpw 변수와 비교하여 동일하다면 원래 글을 보여준다.

 

만약 비밀번호가 틀렸다면 else문이 실행되면서 비밀번호가 틀립니다 라는 문구를 띄운다.

 

코드를 실행하기 위해 js파일과 lock.png 등이 필요하다. 출처는 이곳이다.

php게시판.zip
0.22MB

 

이제 게시판을 이용하여 글 잠구기 기능을 사용해 보자.

 

 

적당한 내용을 작성하고 글 잠구기 체크박스를 선택하고 글을 작성한다.

 

 

그러면 이렇게 글 제목과 함께 이전에 받아두었던 lock.png가 같이 보이는 것을 확인 할 수 있다.

(index는 이전에 몇개 테스트 해보고 지우느라 18이 되었다)

이 글을 선택하면

 

 

비밀글입니다. 라고 나오며 비밀번호를 요구한다.

 

틀렸을 경우
맞았을 경우

 

입력한 비밀번호가 틀렸을 경우 위 처럼 출력되면서 다시 비밀번호 입력 창으로 돌아가고,

 

맞았을 경우 아래 처럼 글 내용이 보여진다.

 

다음에는 댓글 기능을 추가해 봐야겠다.

 

현재까지의 디렉토리 구조이다.

댓글