현재접속자 페이지를 관리자만 볼 수 있게
본문
/bbs/current_connect.php 현재 접속자 페이지를 로그인 회원중에 관리자만 볼 수 있도록 하는데요.
일단 메인 화면에서는 이렇게 해놓았는데
<?php if($is_member) { ?>
<?php if($is_admin) { ?>
<a href="<?php echo $at_href['connect'];?>">접속
<?php echo number_format($stats['now_total']); ?>
<?php echo ($stats['now_mb']) ? ' (<b class="orangered">'.number_format($stats['now_mb']).'</b>)' : ''; ?></a>
<?php } ?>
<?php } ?>
클릭 링크가 보이지 않게는 되지만 그냥 바로 test.co.kr/bbs/current_connect.php
이렇게 바로 입력을 해서 접속을 하면 하면 페이지가 열려버리네요.
그래서 current_connect.php 이 php파일을 열어보니까
너무 길던데 어디를 수정해야 하는지 잘 모르겠네요.
아래는 current_connect.php 파일의 소스코드 입니다.
<?php
include_once('./_common.php');
// Page ID
$pid = 'connect';
$at = apms_page_thema($pid);
include_once(G5_LIB_PATH.'/apms.thema.lib.php');
// 스킨 체크
list($connect_skin_path, $connect_skin_url) = apms_skin_thema('connect', $connect_skin_path, $connect_skin_url);
// 설정값 불러오기
$is_connect_sub = false;
@include_once($connect_skin_path.'/config.skin.php');
$g5['title'] = '현재접속자';
if($is_connect_sub) {
include_once(G5_PATH.'/head.sub.php');
if(!USE_G5_THEME) @include_once(THEMA_PATH.'/head.sub.php');
} else {
include_once('./_head.php');
}
$skin_path = $connect_skin_path;
$skin_url = $connect_skin_url;
$list = array();
$sql_find = ($config['as_admin']) ? "and find_in_set(a.mb_id, '{$config['as_admin']}')=0" : "";
$sql = " select a.mb_id, b.mb_nick, b.mb_name, b.mb_email, b.mb_homepage, b.mb_open, b.mb_point, b.as_level, a.lo_ip, a.lo_location, a.lo_url
from {$g5['login_table']} a left join {$g5['member_table']} b on (a.mb_id = b.mb_id)
where a.mb_id <> '{$config['cf_admin']}' $sql_find
order by a.mb_id desc, a.lo_datetime desc ";
$result = sql_query($sql);
for ($i=0; $row=sql_fetch_array($result); $i++) {
$row['lo_url'] = get_text($row['lo_url']);
$list[$i] = $row;
if ($row['mb_id']) {
$list[$i]['name'] = apms_sideview($row['mb_id'], cut_str($row['mb_nick'], $config['cf_cut_name']), $row['mb_email'], $row['mb_homepage'], $row['as_level']);
} else {
if ($is_admin)
$list[$i]['name'] = $row['lo_ip'];
else
$list[$i]['name'] = preg_replace("/([0-9]+).([0-9]+).([0-9]+).([0-9]+)/", G5_IP_DISPLAY, $row['lo_ip']);
}
$list[$i]['num'] = sprintf('%03d',$i+1);
}
// 스킨설정
$wset = (G5_IS_MOBILE) ? apms_skin_set('connect_mobile') : apms_skin_set('connect');
$setup_href = '';
if(is_file($skin_path.'/setup.skin.php') && ($is_demo || $is_designer)) {
$setup_href = './skin.setup.php?skin=connect&ts='.urlencode(THEMA);
}
include_once($skin_path.'/current_connect.skin.php');
if($is_connect_sub) {
if(!USE_G5_THEME) @include_once(THEMA_PATH.'/tail.sub.php');
include_once(G5_PATH.'/tail.sub.php');
} else {
include_once('./_tail.php');
}
?>
어디를 수정을 해야 관리자만 열 수 있게 되나요?
답변 2
그냥 단순한방법으로
/root/extend/user.config.php
위 파일에서 아래 구문을 추가해보시고 테스트해보세요
if(!$is_admin && preg_match("#current_connect.php#", $_SERVER['REQUEST_URI'])) {
alert("접근 권한이 없습니다.", G5_URL);
}