답변 3개
채택된 답변
+20 포인트
10년 전
음.. 관리자든 해당글쓴이든 다른회원이등 해당글에 걸려있는 패스워드를 아는사람만 읽게..
이부분만 보겠습니다.
비밀글도 해당 글에 패스워드를 알고있으면 누구나 열람 가능하지 않나요? 뭐가틀린것인지
잘 이해가되진 않지만..
board.php 파일의 79라인 언저리쪽에 아래와같은 코드가 있습니다.
이부분이 글쓴이나, 관리자일경우 열람가능케 하는 코드와 그게 아니고 비밀글일경우
해당게시글의 패스워드를 입력받는 부분입니다.
</p><p> // 자신의 글이거나 관리자라면 통과</p><p> //주석처리 if (($write['mb_id'] && $write['mb_id'] == $member['mb_id']) || $is_admin) {</p><p> // 주석처리 ;</p><p> //주석처리 } else {</p><p> // 비밀글이라면</p><p> if (strstr($write['wr_option'], "secret"))</p><p> {</p><p> // 회원이 비밀글을 올리고 관리자가 답변글을 올렸을 경우</p><p> // 회원이 관리자가 올린 답변글을 바로 볼 수 없던 오류를 수정</p><p> $is_owner = false;</p><p> if ($write['wr_reply'] && $member['mb_id'])</p><p> {</p><p> $sql = " select mb_id from {$write_table}</p><p> where wr_num = '{$write['wr_num']}'</p><p> and wr_reply = ''</p><p> and wr_is_comment = 0 ";</p><p> $row = sql_fetch($sql);</p><p> if ($row['mb_id'] == $member['mb_id'])</p><p> $is_owner = true;</p><p> }</p><p> </p><p> $ss_name = 'ss_secret_'.$bo_table.'_'.$write['wr_num'];</p><p> </p><p> if (!$is_owner)</p><p> {</p><p> //$ss_name = "ss_secret_{$bo_table}_{$wr_id}";</p><p> // 한번 읽은 게시물의 번호는 세션에 저장되어 있고 같은 게시물을 읽을 경우는 다시 비밀번호를 묻지 않습니다.</p><p> // 이 게시물이 저장된 게시물이 아니면서 관리자가 아니라면</p><p> //if ("$bo_table|$write['wr_num']" != get_session("ss_secret"))</p><p> if (!get_session($ss_name))</p><p> goto_url('./password.php?w=s&bo_table='.$bo_table.'&wr_id='.$wr_id.$qstr);</p><p> }</p><p> </p><p> set_session($ss_name, TRUE);</p><p> }</p><p> //주석처리 }</p><p> </p><p>
이렇게 해놓으면 관리자고 글쓴이고
글작성시 넣었던 비밀번호를 넣어야 열람이되겠지요..
그냥 단순히 비밀글 기능과 상관없이
글작성시 패스워드를 입력받고 패스워드를 아는 사람만 열람케하는 건가요?
질문이 살짝 햇갈려서요.
그럴경우라면 회원여부와상관없이 스킨상에서 게시글 비밀번호 입력항목을
활성화시키고 무조건 입력받은후
위에 올린부분의 소스 아래에서 처리해버리면 간단합니다.
view 스킨도 수정되야겠지만요.
로그인 후 평가할 수 있습니다
답변에 대한 댓글 1개
�
재아
10년 전
댓글을 작성하려면 로그인이 필요합니다.
답변에 대한 댓글 1개
�
재아
10년 전
저는 별도로 필드를 만들거나 여분필드를 활용할 생각만 하고 있었는데, 가만히 생각해보니 말씀이 맞네요.. 아무튼 잘 해결했습니다. 감사
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
아래 스트레스-제윤아빠님과 로핑님의 이야기와 조언을 듣고 나니 이제 좀 이해가 되네요! 감사합니다.