일반문서 권한 제한, 문서 접근시 로그인후 레벨별로 접근할 수 있도록 하려고 합니다.
본문
그누보드5, 영카트5 입니다.
일반문서(html, php)를 만들었습니다.
모든 문서 제일 상단에
<?php
include_once('./_common.php');
?>
를 넣었습니다. 그리고 아래와 같은 코드를 입력했습니다.
레벨별로 문서 접근 제한을 두려고 합니다.
아래 코드에 무슨 문제가 있나요.
=============================
방법1)
<? if ($is_guest) { ?>
<script>
alert('권한이 없습니다. 회원이시라면 로그인 후 이용해주세요.^^');
location = 'http://~~~~~.com/bbs/login.php';
</script>
<? } ?>
aaaaaaaaa
=============================
방법2)
<? if ($member['mb_level'] < 3) { ?>
<script>
alert('권한이 없습니다');
location = '<?=G5_PATH?>/bbs/login.php';
</script>
<? } ?>
aaaaaaaaa
=============================
방법3)
<?
if ($member[mb_level] < 9) // 회원의 접근 권한 조정
{
echo "<script language='javascript'> alert('죄송합니다. 정회원만 이용하실 수 있습니다.');
javascript:history.go(-1); </script>";
exit;
}
?>
aaaaaaaaa
=============================
방법4)
<?php if($member['mb_level'] >= '3') { // 레벨3 이상 ?>
<li>
<a href="<?php echo G5_BBS_URL;?>/board.php?bo_table=tb2200"><i class="fa fa-envira"></i> <span class="hidden-xs"> 아영 </span></a>
</li>
<?php } ?>
aaaaaaaaa
=============================
방법5)
<?
include_once('./_common.php');
print_r2($member);
$member = get_member($ss_mb_id);
if ($member[mb_level] < 9 || $member[mb_id] == '') // 회원의 접근 권한 조정
{
alert('죄송합니다. 정회원만 이용하실 수 있습니다');
exit;
}
?>
aaaaaaaaa
=============================
방법6)
<?
include_once("./_common.php");
if (!$is_member||($member[mb_level]<3)) {
alert("회원레벨3이 아닙니다.");
}
?>
aaaaaaaaa
=============================
방법7)
<?
include_once('./_common.php');
$member = get_member($ss_mb_id);
if ($member[mb_level] < 9 || $member[mb_id] == '') // 회원의 접근 권한 조정
{
alert('죄송합니다. 정회원만 이용하실 수 있습니다');
exit;
}
?>
aaaaaaaaa
=============================
방법8)
<?
if ($member['mb_level'] < 5) {
if ($is_member)
alert('글을 읽을 권한이 없습니다.', G5_URL);
else
alert('글을 읽을 권한이 없습니다.\\n\\n회원이시라면 로그인 후 이용해 보십시오.', './login.php?url='.$urlencode);
}
?>
aaaaaaaaa
=============================
방법8)
<?php
include_once("../common.php");
?>
<? if ($is_guest) { ?>
<script>
alert('권한이 없습니다');
location = '<?=G5_PATH?>/bbs/login.php';
</script>
<? } ?>
aaaaaaaaa
=============================
방법9)
<?
if (!$member["mb_id"]){
alert('로그인 후 접속하세요', '/bbs/login.php');
}
?>
aaaaaaaaa
=============================
방법10)
<? if ($is_guest) { ?>
<script>
alert('권한이 없습니다. 회원이시라면 로그인 후 이용해주세요.^^');
location = '/bbs/login.php';
</script>
<? } ?>
aaaaaaaaa
=============================
방법11)
<?
if ($member['mb_level'] < 3) {
alert('권한이 없습니다.', G5_URL);
}
?>
aaaaaaaaa
aaaaaaaaa
=============================
방법12)
<? if ($member['mb_level'] < 3) { ?>
<script>
alert('권한이 없습니다');
location = '<?=G5_PATH?>/bbs/login.php';
</script>
<? } ?>
aaaaaaaaa
위와 같이 12가지를 다 적용해 보았습니다.
위의 소스중에서 차단이 되는 것도 있으나
관리자 및 통과할수 있는 레벨(예 레벨3) 이상도
차단을 합니다. 즉, 로그인이 되어있든 없든 차단을 합니다.
로그인이 안되어 있을때는 차단하고,
권한이 있는 레벨이 로그인 할때는 통과를 하게 하고 싶습니다
지도 부탁합니다. 감사합니다.^^
답변 2
<?php
if(!$is_member) {
alert("회원만","이동할페이지");
} else {
switch($member['mb_level']) {
case 2:
alert("2레벨은 빠빠이", "이동할 페이지");
exit;
case 3:
echo "3레벨은 환영이야";
break;
case 4:
echo "4레벨도 환영이야. 나머지 레벨 안적어도 통과야";
break;
}
}
?>
그림자밟기님, 답변 감사합니다.
제가 폴더를 html 속에 넣어서 실행할시에는 적용이 됩니다.
그런데, 폴더/폴더/폴더/실행파일(.php)를 실행하면 안됩니다.
adm, bbs 같은 위치에 있으면 되고, 하위 폴더에 실행하고자 하는
파일(.php)를 넣으면 안됩니다.
실행할 파일이 많이 있기때문에 adm, bbs 와 같은 위치에 놓으면
너무 복잡할 것 같아, 하위 폴더에 넣어서 실행하고자 합니다.
위처럼 폴더/폴더/폴더/실행파일(.php)를 실행할 수 있나요.
감사합니다.