\n"; for ($i=0; $i선택"; $str .= option_selected($skins[$i], $selected); } $str .= ""; return $str; } // 모바일 스킨디렉토리를 SELECT 형식으로 얻음 function get_mobile_skin_select($skin_gubun, $id, $name, $selected='', $event='') { $skins = get_skin_dir($skin_gubun, G5_MOBILE_PATH.'/'.G5_SKIN_DIR); $str = ""; return $str; } // 스킨경로를 얻는다 function get_skin_dir($skin, $skin_path=G5_SKIN_PATH) { global $g5; $result_array = array(); $dirname = $skin_path.'/'.$skin.'/'; $handle = opendir($dirname); while ($file = readdir($handle)) { if($file == '.'||$file == '..') continue; if (is_dir($dirname.$file)) $result_array[] = $file; } closedir($handle); sort($result_array); return $result_array; } // 회원 삭제 function member_delete($mb_id) { global $config; global $g5; $sql = " select mb_name, mb_nick, mb_ip, mb_recommend, mb_memo, mb_level from {$g5['member_table']} where mb_id= '".$mb_id."' "; $mb = sql_fetch($sql); if ($mb['mb_recommend']) { $row = sql_fetch(" select count(*) as cnt from {$g5['member_table']} where mb_id = '".addslashes($mb['mb_recommend'])."' "); if ($row['cnt']) insert_point($mb['mb_recommend'], $config['cf_recommend_point'] * (-1), $mb_id.'님의 회원자료 삭제로 인한 추천인 포인트 반환', "@member", $mb['mb_recommend'], $mb_id.' 추천인 삭제'); } // 회원자료는 정보만 없앤 후 아이디는 보관하여 다른 사람이 사용하지 못하도록 함 : 061025 $sql = " update {$g5['member_table']} set mb_jumin = '', mb_password = '', mb_level = 1, mb_email = '', mb_homepage = '', mb_password_q = '', mb_password_a = '', mb_tel = '', mb_hp = '', mb_zip1 = '', mb_zip2 = '', mb_addr1 = '', mb_addr2 = '', mb_birth = '', mb_sex = '', mb_signature = '', mb_memo = '".date('Ymd', G5_SERVER_TIME)." 삭제함\n{$mb['mb_memo']}', mb_leave_date = '".date('Ymd', G5_SERVER_TIME)."' where mb_id = '{$mb_id}' "; sql_query($sql); } // 회원권한을 SELECT 형식으로 얻음 function get_member_level_select($name, $start_id=0, $end_id=10, $selected="", $event="") { global $g5; $str = "\n'; return $str; } // 권한 검사 function auth_check($auth, $attr) { global $is_admin; if ($is_admin == 'super') return; if (!trim($auth)) alert('이 메뉴에는 접근 권한이 없습니다.\\n\\n접근 권한은 최고관리자만 부여할 수 있습니다.'); $attr = strtolower($attr); if (!strstr($auth, $attr)) { if ($attr == 'r') alert('읽을 권한이 없습니다.'); else if ($attr == 'w') alert('입력, 추가, 생성, 수정 권한이 없습니다.'); else if ($attr == 'd') alert('삭제 권한이 없습니다.'); else alert('속성이 잘못 되었습니다.'); } } // 작업아이콘 출력 function icon($act, $link='', $target='_parent') { global $g5; $img = array('입력'=>'insert', '추가'=>'insert', '생성'=>'insert', '수정'=>'modify', '삭제'=>'delete', '이동'=>'move', '그룹'=>'move', '보기'=>'view', '미리보기'=>'view', '복사'=>'copy'); $icon = ''; if ($link) $s = ''.$icon.''; else $s = $icon; return $s; } // rm -rf 옵션 : exec(), system() 함수를 사용할 수 없는 서버 또는 win32용 대체 // www.php.net 참고 : pal at degerstrom dot com function rm_rf($file) { if (file_exists($file)) { @chmod($file, G5_FILE_PERMISSION); if (is_dir($file)) { $handle = opendir($file); while($filename = readdir($handle)) { if ($filename != '.' && $filename != '..') rm_rf($file.'/'.$filename); } closedir($handle); rmdir($file); } else unlink($file); } } // 입력 폼 안내문 function help($help="") { global $g5; $str = ''.str_replace("\n", "
", $help).'
'; return $str; } // 출력순서 function order_select($fld, $sel='') { $s = ''; return $s; } // 접근 권한 검사 if (!$member['mb_id']) { //alert('로그인 하십시오.', '$g5['bbs_path']/login.php?url=' . urlencode('$_SERVER['PHP_SELF']?w=$w&mb_id=$mb_id')); alert('로그인 하십시오.', G5_BBS_URL.'/login.php?url=' . urlencode($_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING'])); } else if ($is_admin != 'super') { $auth = array(); $sql = " select au_menu, au_auth from {$g5['auth_table']} where mb_id = '{$member['mb_id']}' "; $result = sql_query($sql); for($i=0; $row=sql_fetch_array($result); $i++) { $auth[$row['au_menu']] = $row['au_auth']; } if (!$i) { alert('최고관리자 또는 관리권한이 있는 회원만 접근 가능합니다.', G5_URL); } } // 관리자의 아이피, 브라우저와 다르다면 세션을 끊고 관리자에게 메일을 보낸다. $admin_key = md5($member['mb_datetime'] . $_SERVER['REMOTE_ADDR'] . $_SERVER['HTTP_USER_AGENT']); if (get_session('ss_mb_key') !== $admin_key) { session_destroy(); include_once(G5_LIB_PATH.'/mailer.lib.php'); // 메일 알림 mailer($member['mb_nick'], $member['mb_email'], $member['mb_email'], 'XSS 공격 알림', $_SERVER['REMOTE_ADDR'].' 아이피로 XSS 공격이 있었습니다.\n\n관리자 권한을 탈취하려는 접근이므로 주의하시기 바랍니다.\n\n해당 아이피는 차단하시고 의심되는 게시물이 있는지 확인하시기 바랍니다.\n\n'.G5_URL, 0); alert_close('정상적으로 로그인하여 접근하시기 바랍니다.'); } @ksort($auth); // 가변 메뉴 unset($auth_menu); unset($menu); unset($amenu); $tmp = dir(G5_ADMIN_PATH); while ($entry = $tmp->read()) { if (!preg_match('/^admin.menu([0-9]{3}).*\.php$/', $entry, $m)) continue; // 파일명이 menu 으로 시작하지 않으면 무시한다. $amenu[$m[1]] = $entry; include_once(G5_ADMIN_PATH.'/'.$entry); } @ksort($amenu); $arr_query = array(); if (isset($sst)) $arr_query[] = 'sst='.$sst; if (isset($sod)) $arr_query[] = 'sod='.$sod; if (isset($sfl)) $arr_query[] = 'sfl='.$sfl; if (isset($stx)) $arr_query[] = 'stx='.$stx; if (isset($page)) $arr_query[] = 'page='.$page; $qstr = implode("&", $arr_query); // 관리자에서는 추가 스크립트는 사용하지 않는다. //$config['cf_add_script'] = ''; ?>