그누보드에서 GET으로 받아서
ID가 있으면 DB에 저장된 정보로 이동이고
차단된 IP이면 DB에 저장된 차단용 정보로 이동하는 것을 짜고있는데요
아래 두줄에서 해결이 안되네요.
iD가 있는 상태에서 원래 가라는 정보로 가는게 먹히면 ..차단이 안먹히고..
차단이 먹히려면 아래 붉은 부분을 지워야하네요.
가령 도메인.COM/?id=test 인 경우에 차단이 안되어있다면 mb_1의 값인 주소로로 이동하고
차단이라면 mb_2의 값인 주소로 이동하는 것입니다.
(차단하는 부분은 테스트 해봐서 이상이 없는데요.. 마지막에 mb_1으로 가라는 부분을 지정해주면 말썽이 납니다;)
<?
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
$request_id = $_GET[id];
if($request_id) {
$sql = " select mb_1, mb_2
from {$g5[member_table]}
where mb_id= '{$request_id}'";
$result = sql_query($sql);
$row=sql_fetch_array($result);
$ipaddress = '112.111.111.111';// $_SERVER['REMOTE_ADDR']; // 접속자 아이피 값 불러오기
$sql = " select * from $g5[block_ip_table] ";
$qry = sql_query($sql);
$rows=sql_fetch_array($qry);
for ($i=0; $i<count($rows); $i++) {
if($rows[block_ip] == $ipaddress)
header('Location: '.$row[mb_2].'');
}
// 접근차단 IP 기존
$is_intercept_ip = false;
$pattern = explode("\n", trim($config['cf_intercept_ip']));
for ($i=0; $i<count($pattern); $i++) {
$pattern[$i] = trim($pattern[$i]);
if (empty($pattern[$i]))
continue;
$pattern[$i] = str_replace(".", "\.", $pattern[$i]);
$pattern[$i] = str_replace("+", "[0-9\.]+", $pattern[$i]);
$pat = "/^{$pattern[$i]}$/";
$is_intercept_ip = preg_match($pat, $ipaddress);
if ($is_intercept_ip) // 범위차단+id값있으면
header('Location: '.$row[mb_2].'');
}
for ($i=0; $i<count($row); $i++) { //차단안된 id이면
if($row) header('Location: '.$row[mb_1].'');// 이동변경
}
}
?>