게시판 리스트보기에 비번걸기 채택완료

비회원이 사용할 수 있는 게시판을 보면 일단 리스트가 바로 보이게 되는데,

비회원중에서 특정 암호를 아는 사람만 쓸수 있는 게시판으로 운영하려고 합니다.

즉, 모임에서 공통 비번을 공유하고, 특정 게시판에 들어가려면 바로 리스트가 보이는 게 아니라

비번 입력창이 뜨게 하려면 어떻게 하면 될까요?

답변 1개

채택된 답변
+20 포인트

이건 그누보드 비밀글을 볼때의 방식을 이해하면 만들수 있습니다.

비밀글 열람하는 방식 참고해서 코드 대충 짜보았으니 참고해보세요.

사전 작업 : 패스워드를 적용할 게시판 설정 여분필드1에 비밀번호를 입력을 합니다.

(게시글 목록 보기와 뷰는 레벨 1로 합니다)

1.  그누보드5/bbs/에 파일 생성 

 - 파일명 : board_password.php

Copy
<?php
include_once('./_common.php');
  
$action = https_url(G5_BBS_DIR).'/board_password_check.php'; 

include_once(G5_PATH.'/head.sub.php');
$g5['title'] = "게시판 비밀번호 입력";
add_stylesheet('<link rel="stylesheet" href="'.$member_skin_url.'/style.css">', 0);
?>


<!-- 비밀번호 확인 시작 { -->
<div id="pw_confirm" class="mbskin">
    <h1><?php echo $g5['title'] ?></h1>
    <p>비밀번호를 입력해주세요. </p>
    <form name="fboardpassword" action="<?php echo $action;  ?>" method="post">
    <input type="hidden" name="bo_table" value="<?php echo $bo_table ?>">
    <fieldset>
        <label for="pw_wr_password" class="sound_only">비밀번호<strong>필수</strong></label>
        <input type="password" name="wr_password" id="password_wr_password" required class="frm_input required" size="15" maxLength="20" placeholder="비밀번호">
        <input type="submit" value="확인" class="btn_submit">
    </fieldset>
    </form>
</div>
<!-- } 비밀번호 확인 끝 -->
<?


include_once(G5_PATH.'/tail.sub.php');

2.  그누보드5/bbs/에 파일 생성 

 - 파일명 : board_password_check.php

Copy
<?php
include_once('./_common.php');

    $qstr = 'bo_table='.$bo_table;

    if($wr_password != $board['bo_1']) { //폼에너 넘긴 비밀번호와 여분필드1에서 설정한 비밀번호가 다르다면
        alert('비밀번호가 틀립니다.');
    }

   //비밀번호가 맞다면

    $ss_name = 'ss_board_pw_'.$bo_table; 
    set_session($ss_name, TRUE);//세션을 생성(다시 접근시 비번 없이 접근 가능하고 게시글도 읽을수 있어야 하기 때문에)

goto_url(short_url_clean(G5_HTTP_BBS_URL.'/board.php?'.$qstr));

3. 비번을 적용할 해당 게시판 스킨의

- list.skin.php 상단

Copy
if ($is_guest && $board['bo_1']){    //비회원이고 비번설정이 되어있으면
    $ss_name = 'ss_board_pw_'.$bo_table; 
    if (!get_session($ss_name)) //세션을 확인하여 패스워드 통과 못했으면 패스워드 입력 칸으로 이동
        goto_url(G5_BBS_URL.'/board_password.php?bo_table='.$bo_table);
}

4. 비번을 적용할 해당 게시판 스킨의

- view.skin.php 상단

Copy
if ($is_guest && $board['bo_1']){    
    $ss_name = 'ss_board_pw_'.$bo_table; 
    if (!get_session($ss_name)) alert("잘못된 접근입니다"); //비번 통과를 못했으면 게시글 열람 불가(그누보드 구조를 아는 회원은 게시글로 다이렉트로 올수 있기 때문)
}

대략 이런식으로 가능할것 같습니다.

허점이 많은 코드이긴 하지만 참고해보세요.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

상세한 답변 정말 감사 드립니다. 제가 확인이 늦어서 채택이 늦었네요.
하나씩 살펴보면서 적용해 보겠습니다. 감사합니다.

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인
🐛 버그신고