개별페이지 접근불가 를 응용해서 특정레벨만 접근시키고 싶습니다.
본문
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
이게 개별페이지 로드시 접근불가 인데 이걸 응용해서
5레벨 미만은 접근금지 시키려하는데 잘 안되네요^^;;
if ($member['mb_level'] >= 5 ) exit;
이렇게 해봤는데도 안되요 ㅠㅠ
어떻게 해야할까요?
답변 8
common을 로드했다면 config도 로그되었을 것이고
config에 define('_GNUBOARD_', true); 설정이 있으므로 common을 로드하면 개별 페이지가 아니라는 뜻입니다. 그냥 exit만 하세요
정확히 어떻게 안되는지는 모르겠습니다만
if ($member['mb_level'] >= 5 ) exit; 는 5레벨 이상일때 프로그램 전체를 정지시키는 코드 같습니다.
미만이라면 if ($member['mb_level'] < 5 ) exit; 이 아닐런지요
부등호 방향이 거꾸로인데요... 지금 상황에선 레벨 5이상이면 이후 실행을 안 한다는 뜻입니다.
그리고 $member 변수를 정의하는 common.php를 불러들인 이후에 저 구문이 들어가야 합니다.
추가설명드릴께요 ㅠㅠ
별도로 특정페이지를 만들었습니다.
<?php
include_once('./_common.php');
?>
이렇게 상단에 인클루드 시켰구요..
9레벨로 테스트 아이디를 만들어서
<?php if($member['mb_level'] == 9 ){ ?>
<?php if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가 ?>
<?php } ?>
<?php
include_once('./_common.php');
?>
이렇게 했는데 코드대로라면 9레벨 접근시 개별페이지 접근불가가 되어야 하는데
아무런 동작도 안합니다 ㅠㅠ
<?php
if($member['mb_level'] == 9 ){
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
}
include_once('./_common.php');
?>
이렇게 해도 안되고요 ㅠㅠ
<?php
include_once('./_common.php');
if($member['mb_level'] == 9 ){
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
}
?>
이렇게도 해봤습니다 ㅠㅠ
그냥
<?php
include_once('./_common.php');
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
?>
이렇게 하면 개별페이지 접근불가가 잘되는데 왜 그럴까요 ㅠㅠ
if 문이 틀린걸까요?
혹시나 해서 글을 남겨봅니다~
저도 이런경험이 있었서...노파심에 글을 남겨봅니다~
<?php
include_once('./_common.php');
echo $member['mb_level'];
?>
이렇게 했을때 회원레벨이 출력이 되나요..?
<?php
include_once('./_common.php');
echo $member['mb_level'];
?>
이렇게 하면 회원레벨 잘 출력됩니다.
원래는 소스는
<?php
include_once('./_common.php');
?>
<?php if($member['mb_level'] == 9 ){
// 9레벨 전용 코드
}
?>
이렇게 쓰고 있었는데요
이러면 1레벨~9레벨까지 모든내용인 다 한페이지라서 페이지가 너무 커서
이걸 레벨별로 페이지를 나누고 접근권한을 페이지마다 주려했거든요..
왜 안되는지 모르겠네요 ㅠㅠ