테스트 사이트 - 개발 중인 베타 버전입니다

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

동물원 3년 전 조회 2,166

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

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

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

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

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

답변 1개

채택된 답변
+20 포인트
Dessi
3년 전

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

 

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

 

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

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

 

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

 - 파일명 : board_password.php

 

</p>

<p><?php

include_once('./_common.php');

  

$action = https_url(G5_BBS_DIR).'/board_password_check.php'; </p>

<p>include_once(G5_PATH.'/head.sub.php');

$g5['title'] = "게시판 비밀번호 입력";

add_stylesheet('<link rel="stylesheet" href="'.$member_skin_url.'/style.css">', 0);

?></p>

<p>

<!-- 비밀번호 확인 시작 { -->

<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>

<!-- } 비밀번호 확인 끝 -->

<?</p>

<p>

include_once(G5_PATH.'/tail.sub.php');</p>

<p>

 

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

 - 파일명 : board_password_check.php

 

</p>

<p><?php

include_once('./_common.php');</p>

<p>    $qstr = 'bo_table='.$bo_table;</p>

<p>    if($wr_password != $board['bo_1']) { //폼에너 넘긴 비밀번호와 여분필드1에서 설정한 비밀번호가 다르다면

        alert('비밀번호가 틀립니다.');

    }</p>

<p>   //비밀번호가 맞다면</p>

<p>    $ss_name = 'ss_board_pw_'.$bo_table; 

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

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

<p>

 

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

- list.skin.php 상단

 

</p>

<p>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);

}</p>

<p>

 

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

- view.skin.php 상단

</p>

<p>if ($is_guest && $board['bo_1']){    

    $ss_name = 'ss_board_pw_'.$bo_table; 

    if (!get_session($ss_name)) alert("잘못된 접근입니다"); //비번 통과를 못했으면 게시글 열람 불가(그누보드 구조를 아는 회원은 게시글로 다이렉트로 올수 있기 때문)

}</p>

<p>

 

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

 

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

 

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

답변에 대한 댓글 1개

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

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

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

로그인