답변 8개 / 댓글 1개
<?php
include_once('./_common.php');
echo $member['mb_level'];
?>
이렇게 하면 회원레벨 잘 출력됩니다.
원래는 소스는
<?php
include_once('./_common.php');
?>
<?php if($member['mb_level'] == 9 ){
// 9레벨 전용 코드
}
?>
이렇게 쓰고 있었는데요
이러면 1레벨~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');
?>
이렇게 상단에 인클루드 시켰구요..
9레벨로 테스트 아이디를 만들어서
<?php if($member['mb_level'] == 9 ){ ?>
<?php if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가 ?>
<?php } ?>
<?php
include_once('./_common.php');
?>
이렇게 했는데 코드대로라면 9레벨 접근시 개별페이지 접근불가가 되어야 하는데
아무런 동작도 안합니다 ㅠㅠ
답변을 작성하려면 로그인이 필요합니다.
include_once('./_common.php');
if($member['mb_level'] == 9) exit;
[/code]
이렇게 하면 레벨 9 일 때 접근제한을 하게 됩니다.
휴란드님 말씀이 그 말이에요.
[code]
if (!defined('_GNUBOARD_')) exit;
[/code]
이 구문은 common.php를 불러들이지 않았을 때 _GNUBOARD_라는 변수가 선언되지 않는 점을 이용하는 것으로, common.php를 불러들이지 않고 실행하는 경우에 exit이 실행되는 원리입니다.
[code]
include_once('./_common.php');
if($member['mb_level'] == 9) {
if (!defined('_GNUBOARD_')) exit;
}
[/code]
이 경우에는 멤버 레벨이 9이니까 괄호 안이 실행되지만, _GNUBOARD_ 변수가 common.php에서 선언되었으므로 exit이 실행되지 않습니다.
화이팅하세요...