개별페이지 접근불가 를 응용해서 특정레벨만 접근시키고 싶습니다.

개별페이지 접근불가 를 응용해서 특정레벨만 접근시키고 싶습니다.

QA

개별페이지 접근불가 를 응용해서 특정레벨만 접근시키고 싶습니다.

본문

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
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레벨까지 모든내용인 다 한페이지라서 페이지가 너무 커서

이걸 레벨별로 페이지를 나누고 접근권한을 페이지마다 주려했거든요..

 

왜 안되는지 모르겠네요 ㅠㅠ

 

 


include_once('./_common.php');
if($member['mb_level'] == 9) exit;

이렇게 하면 레벨 9 일 때 접근제한을 하게 됩니다.
휴란드님 말씀이 그 말이에요.


if (!defined('_GNUBOARD_')) exit;

이 구문은 common.php를 불러들이지 않았을 때 _GNUBOARD_라는 변수가 선언되지 않는 점을 이용하는 것으로, common.php를 불러들이지 않고 실행하는 경우에 exit이 실행되는 원리입니다.


include_once('./_common.php');
if($member['mb_level'] == 9) {
if (!defined('_GNUBOARD_')) exit;
}

이 경우에는 멤버 레벨이 9이니까 괄호 안이 실행되지만, _GNUBOARD_ 변수가 common.php에서 선언되었으므로 exit이 실행되지 않습니다.
화이팅하세요...

답변을 작성하시기 전에 로그인 해주세요.
전체 59,644
QA 내용 검색
  • 개별 목록 구성 제목 답변작성자조회작성일
  • 질문이 없습니다.

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT