이 글은 이곳을 참고하여 만들어졌습니다.
오늘은 글을 비공개글로 만들수 있고, 그렇게 설정할 시 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 등이 필요하다. 출처는 이곳이다.
이제 게시판을 이용하여 글 잠구기 기능을 사용해 보자.
적당한 내용을 작성하고 글 잠구기 체크박스를 선택하고 글을 작성한다.
그러면 이렇게 글 제목과 함께 이전에 받아두었던 lock.png가 같이 보이는 것을 확인 할 수 있다.
(index는 이전에 몇개 테스트 해보고 지우느라 18이 되었다)
이 글을 선택하면
비밀글입니다. 라고 나오며 비밀번호를 요구한다.
입력한 비밀번호가 틀렸을 경우 위 처럼 출력되면서 다시 비밀번호 입력 창으로 돌아가고,
맞았을 경우 아래 처럼 글 내용이 보여진다.
다음에는 댓글 기능을 추가해 봐야겠다.
현재까지의 디렉토리 구조이다.
'따라 공부하기 > PHP게시판 따라하기' 카테고리의 다른 글
[PHP+MySQL]게시판 만들기 7 - 댓글 수정 및 삭제 (0) | 2020.12.06 |
---|---|
[PHP+MySQL]게시판 만들기 6 - 댓글 작성 기능 (1) | 2020.12.05 |
[PHP+MySQL]게시판 만들기 4 - 글 수정 및 삭제와 추천하기 기능 (0) | 2020.12.03 |
[PHP+MySQL]게시판 만들기 3 - 글작성과 글 읽기 (5) | 2020.12.02 |
[PHP+MySQL]게시판 만들기 2 - 글list 출력 (4) | 2020.12.01 |
댓글