게시판 리스트보기에 비번걸기
본문
비회원이 사용할 수 있는 게시판을 보면 일단 리스트가 바로 보이게 되는데,
비회원중에서 특정 암호를 아는 사람만 쓸수 있는 게시판으로 운영하려고 합니다.
즉, 모임에서 공통 비번을 공유하고, 특정 게시판에 들어가려면 바로 리스트가 보이는 게 아니라
비번 입력창이 뜨게 하려면 어떻게 하면 될까요?
답변 1
이건 그누보드 비밀글을 볼때의 방식을 이해하면 만들수 있습니다.
비밀글 열람하는 방식 참고해서 코드 대충 짜보았으니 참고해보세요.
사전 작업 : 패스워드를 적용할 게시판 설정 여분필드1에 비밀번호를 입력을 합니다.
(게시글 목록 보기와 뷰는 레벨 1로 합니다)
1. 그누보드5/bbs/에 파일 생성
- 파일명 : board_password.php
<?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
<?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 상단
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 상단
if ($is_guest && $board['bo_1']){
$ss_name = 'ss_board_pw_'.$bo_table;
if (!get_session($ss_name)) alert("잘못된 접근입니다"); //비번 통과를 못했으면 게시글 열람 불가(그누보드 구조를 아는 회원은 게시글로 다이렉트로 올수 있기 때문)
}
대략 이런식으로 가능할것 같습니다.
허점이 많은 코드이긴 하지만 참고해보세요.
!-->!-->!-->!-->
답변을 작성하시기 전에 로그인 해주세요.