diff --git a/common.php b/common.php index 1892059f7..5c8258a9f 100644 --- a/common.php +++ b/common.php @@ -3,30 +3,19 @@ ** 공통 변수, 상수, 코드 *******************************************************************************/ //error_reporting(E_ALL ^ E_NOTICE); +//error_reporting(E_ALL & ~E_NOTICE); +//error_reporting(E_ALL & ~E_NOTICE & ~E_STRICT); error_reporting( E_CORE_ERROR | E_CORE_WARNING | E_COMPILE_ERROR | E_ERROR | E_WARNING | E_PARSE | E_USER_ERROR | E_USER_WARNING | E_RECOVERABLE_ERROR ); // 보안설정이나 프레임이 달라도 쿠키가 통하도록 설정 header('P3P: CP="ALL CURa ADMa DEVa TAIa OUR BUS IND PHY ONL UNI PUR FIN COM NAV INT DEM CNT STA POL HEA PRE LOC OTC"'); -if (!isset($set_time_limit)) $set_time_limit = 0; -@set_time_limit($set_time_limit); - -// 짧은 환경변수를 지원하지 않는다면 -if (isset($HTTP_POST_VARS) && !isset($_POST)) { - $_POST = &$HTTP_POST_VARS; - $_GET = &$HTTP_GET_VARS; - $_SERVER = &$HTTP_SERVER_VARS; - $_COOKIE = &$HTTP_COOKIE_VARS; - $_ENV = &$HTTP_ENV_VARS; - $_FILES = &$HTTP_POST_FILES; - - if (!isset($_SESSION)) - $_SESSION = &$HTTP_SESSION_VARS; -} +if (!defined('G4_SET_TIME_LIMIT')) define('G4_SET_TIME_LIMIT', 0); +@set_time_limit(G4_SET_TIME_LIMIT); //============================================================================== -// php.ini 의 magic_quotes_gpc 값이 FALSE 인 경우 addslashes() 적용 +// php.ini 의 magic_quotes_gpc 값이 Off 인 경우 addslashes() 적용 // SQL Injection 등으로 부터 보호 // http://kr.php.net/manual/en/function.get-magic-quotes-gpc.php#97783 //------------------------------------------------------------------------------ @@ -78,21 +67,45 @@ $group = array(); $g4 = array(); +function g4_path() +{ + $path = dirname(__FILE__); // 예) /home/sir/www/g4s + $linux_dir = str_replace("\\", "/", $path); // 예) /home/sir/www/g4s + $document_root = str_replace("\\", "/", $_SERVER['DOCUMENT_ROOT']); // 예) /home/sir/www + $base_dir = preg_replace('#^'.$document_root.'#i', '', $linux_dir); // 예) /g4s + $port = $_SERVER['SERVER_PORT'] != 80 ? ':'.$_SERVER['SERVER_PORT'] : ''; + $http = 'http' . ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS']=='on') ? 's' : '') . '://'; + + $result = array(); + $result['path'] = $path; + $result['url'] = $http.$_SERVER['SERVER_NAME'].$port.$base_dir; + $result['curr_url'] = $http.$_SERVER['SERVER_NAME'].$port.$_SERVER['PHP_SELF']; + $result['curr_uri'] = $result['curr_url'] . ($_SERVER['QUERY_STRING'] ? '?'.$_SERVER['QUERY_STRING'] : ''); + + return $result; +} + +$g4_path = g4_path(); + +include_once($g4_path['path'].'/config.php'); // 설정 파일 + +unset($g4_path); + + //============================================================================== // 공통 //------------------------------------------------------------------------------ -$config_user_file = dirname(__FILE__).'/config.user.php'; -if (file_exists($config_user_file)) { - include_once($config_user_file); - include_once(dirname(__FILE__).'/config.php'); // 설정 파일 +$dbconfig_file = G4_DATA_PATH.'/dbconfig.php'; +if (file_exists($dbconfig_file)) { + include_once($dbconfig_file); include_once(G4_LIB_PATH.'/common.lib.php'); // 공통 라이브러리 $connect_db = sql_connect(G4_MYSQL_HOST, G4_MYSQL_USER, G4_MYSQL_PASSWORD) or die('MySQL Connect Error!!!'); $select_db = sql_select_db(G4_MYSQL_DB, $connect_db) or die('MySQL DB Error!!!'); } else { echo ""; - echo "

$config_user_file 파일을 찾을 수 없습니다.
프로그램 설치 후 실행하시기 바랍니다.

"; - echo '설치하기'; + echo "

$dbconfig_file 파일을 찾을 수 없습니다.
프로그램 설치 후 실행하시기 바랍니다.

"; + echo '설치하기'; exit; } //============================================================================== diff --git a/config.php b/config.php index 51234f8b4..283ab6613 100644 --- a/config.php +++ b/config.php @@ -2,39 +2,54 @@ // 절실함 -if (function_exists("date_default_timezone_set")) - date_default_timezone_set("Asia/Seoul"); - -function g4_path() -{ - $path = dirname(__FILE__); // 예) /home/sir/www/g4s - $linux_dir = str_replace("\\", "/", $path); // 예) /home/sir/www/g4s - $document_root = str_replace("\\", "/", $_SERVER['DOCUMENT_ROOT']); // 예) /home/sir/www - $base_dir = preg_replace('#^'.$document_root.'#i', '', $linux_dir); // 예) /g4s - $port = $_SERVER['SERVER_PORT'] != 80 ? ':'.$_SERVER['SERVER_PORT'] : ''; - $http = 'http' . ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS']=='on') ? 's' : '') . '://'; - - $result = array(); - $result['path'] = $path; - $result['url'] = $http.$_SERVER['SERVER_NAME'].$port.$base_dir; - $result['curr_url'] = $http.$_SERVER['SERVER_NAME'].$port.$_SERVER['PHP_SELF']; - $result['curr_uri'] = $result['curr_url'] . ($_SERVER['QUERY_STRING'] ? '?'.$_SERVER['QUERY_STRING'] : ''); - - return $result; -} - //============================================================================== // 상수 선언 //------------------------------------------------------------------------------ // 이 상수가 정의되지 않으면 각각의 개별 페이지는 별도로 실행될 수 없음 define('_GNUBOARD_', true); -$g4_path = g4_path(); +if (PHP_VERSION >= '5.3.0') { + //if (function_exists("date_default_timezone_set")) date_default_timezone_set("Asia/Seoul"); + date_default_timezone_set("Asia/Seoul"); +} + + +//============================================================================== +// 경로 상수 +//------------------------------------------------------------------------------ + +/* +보안서버 도메인 +회원가입, 글쓰기에 사용되는 https 로 시작되는 주소를 말합니다. +포트가 있다면 도메인 뒤에 :443 과 같이 입력하세요. +보안서버주소가 없다면 공란으로 두시면 되며 보안서버주소 뒤에 / 는 붙이지 않습니다. +입력예) https://www.domain.com:443/gnuboard4s +*/ +define('G4_DOMAIN', 'http://tmp.sir.co.kr/g4s'); +define('G4_HTTPS_DOMAIN', 'http://https-gnuboard4s-tmp.sir.co.kr/g4s'); // http://https-gnuboard4s-tmp.sir.co.kr + +/* +www.sir.co.kr 과 sir.co.kr 도메인은 서로 다른 도메인으로 인식합니다. 쿠키를 공유하려면 .sir.co.kr 과 같이 입력하세요. +이곳에 입력이 없다면 www 붙은 도메인과 그렇지 않은 도메인은 쿠키를 공유하지 않으므로 로그인이 풀릴 수 있습니다. +*/ +define('G4_COOKIE_DOMAIN', '.sir.co.kr'); -// URL 은 브라우저상에서의 경로 (도메인으로 부터의) define('G4_ADMIN_DIR', 'adm'); define('G4_BBS_DIR', 'bbs'); +define('G4_CSS_DIR', 'css'); +define('G4_DATA_DIR', 'data'); +define('G4_EXTEND_DIR', 'extend'); +define('G4_IMG_DIR', 'img'); +define('G4_JS_DIR', 'js'); +define('G4_LIB_DIR', 'lib'); +define('G4_SKIN_DIR', 'skin'); +define('G4_GCAPTCHA_DIR', 'gcaptcha'); +define('G4_CKEDITOR_DIR', 'ckeditor'); +define('G4_EDITOR_DIR', 'editor'); +define('G4_CACHE_DIR', 'cache'); +define('G4_FILE_DIR', 'file'); +// URL 은 브라우저상에서의 경로 (도메인으로 부터의) if (G4_DOMAIN) { define('G4_URL', G4_DOMAIN); } else { @@ -42,30 +57,38 @@ if (G4_DOMAIN) { } define('G4_ADMIN_URL', G4_URL.'/'.G4_ADMIN_DIR); define('G4_BBS_URL', G4_URL.'/'.G4_BBS_DIR); -define('G4_CSS_URL', G4_URL.'/css'); -define('G4_DATA_URL', G4_URL.'/data'); -define('G4_IMG_URL', G4_URL.'/img'); -define('G4_JS_URL', G4_URL.'/js'); -define('G4_SKIN_URL', G4_URL.'/skin'); -define('G4_GCAPTCHA_URL', G4_BBS_URL.'/gcaptcha'); -define('G4_CKEDITOR_URL', G4_BBS_URL.'/ckeditor'); // CKEDITOR 의 라이브러리 경로 -define('G4_EDITOR_URL', G4_DATA_URL.'/editor'); // CKEDITOR 에서 업로드한 파일이 저장되는 경로 -define('G4_CACHE_URL', G4_DATA_URL.'/cache'); +define('G4_CSS_URL', G4_URL.'/'.G4_CSS_DIR); +define('G4_DATA_URL', G4_URL.'/'.G4_DATA_DIR); +define('G4_IMG_URL', G4_URL.'/'.G4_IMG_DIR); +define('G4_JS_URL', G4_URL.'/'.G4_JS_DIR); +define('G4_SKIN_URL', G4_URL.'/'.G4_SKIN_DIR); +define('G4_GCAPTCHA_URL', G4_BBS_URL.'/'.G4_GCAPTCHA_DIR); +define('G4_CKEDITOR_URL', G4_BBS_URL.'/'.G4_CKEDITOR_DIR); // CKEDITOR 의 라이브러리 경로 +define('G4_EDITOR_URL', G4_DATA_URL.'/'.G4_EDITOR_DIR); // CKEDITOR 에서 업로드한 파일이 저장되는 경로 +define('G4_CACHE_URL', G4_DATA_URL.'/'.G4_CACHE_DIR); +define('G4_FILE_URL', G4_DATA_URL.'/'.G4_FILE_DIR); // PATH 는 서버상에서의 절대경로 define('G4_PATH', $g4_path['path']); define('G4_ADMIN_PATH', G4_PATH.'/'.G4_ADMIN_DIR); define('G4_BBS_PATH', G4_PATH.'/'.G4_BBS_DIR); -define('G4_DATA_PATH', G4_PATH.'/data'); -define('G4_EXTEND_PATH', G4_PATH.'/extend'); -define('G4_LIB_PATH', G4_PATH.'/lib'); -define('G4_SKIN_PATH', G4_PATH.'/skin'); -define('G4_GCAPTCHA_PATH', G4_BBS_PATH.'/gcaptcha'); -define('G4_CKEDITOR_PATH', G4_BBS_PATH.'/ckeditor'); -define('G4_CACHE_PATH', G4_DATA_PATH.'/cache'); -define('G4_EDITOR_PATH', G4_DATA_PATH.'/editor'); +define('G4_DATA_PATH', G4_PATH.'/'.G4_DATA_DIR); +define('G4_EXTEND_PATH', G4_PATH.'/'.G4_EXTEND_DIR); +define('G4_LIB_PATH', G4_PATH.'/'.G4_LIB_DIR); +define('G4_SKIN_PATH', G4_PATH.'/'.G4_SKIN_DIR); +define('G4_GCAPTCHA_PATH', G4_BBS_PATH.'/'.G4_GCAPTCHA_DIR); +define('G4_CKEDITOR_PATH', G4_BBS_PATH.'/'.G4_CKEDITOR_DIR); +define('G4_CACHE_PATH', G4_DATA_PATH.'/'.G4_CACHE_DIR); +define('G4_EDITOR_PATH', G4_DATA_PATH.'/'.G4_EDITOR_DIR); +define('G4_FILE_PATH', G4_DATA_PATH.'/'.G4_FILE_DIR); +//============================================================================== -unset($g4_path); + +// 시간 상수 +define('G4_SERVER_TIME', time()); +define('G4_TIME_YMDHIS', date("Y-m-d H:i:s", G4_SERVER_TIME)); +define('G4_TIME_YMD', substr(G4_TIME_YMDHIS, 0, 10)); +define('G4_TIME_HIS', substr(G4_TIME_YMDHIS, 11, 8)); // 입력값 검사 상수 (숫자를 변경하시면 안됩니다.) @@ -77,52 +100,22 @@ define('G4_HANGUL', 16); // 한글 define('G4_SPACE', 32); // 공백 define('G4_SPECIAL', 64); // 특수문자 + // 모바일 인지 결정 $_SERVER['HTTP_USER_AGENT'] define('G4_MOBILE_AGENT', 'phone|samsung|lgtel|mobile|skt|nokia|blackberry|android|sony'); -//============================================================================== + // 자주 사용하는 값 // 서버의 시간과 실제 사용하는 시간이 틀린 경우 수정하세요. // 하루는 86400 초입니다. 1시간은 3600초 // 6시간이 빠른 경우 time() + (3600 * 6); // 6시간이 느린 경우 time() - (3600 * 6); +/* $g4['server_time'] = time(); $g4['time_ymd'] = date("Y-m-d", $g4['server_time']); $g4['time_his'] = date("H:i:s", $g4['server_time']); $g4['time_ymdhis'] = date("Y-m-d H:i:s", $g4['server_time']); -define('G4_SERVER_TIME', time()); -define('G4_TIME_YMDHIS', date("Y-m-d H:i:s", G4_SERVER_TIME)); -define('G4_TIME_YMD', substr(G4_TIME_YMDHIS, 0, 10)); -define('G4_TIME_HIS', substr(G4_TIME_YMDHIS, 11, 8)); - - -// -// 테이블 명 -// (상수로 선언한것은 함수에서 global 선언을 하지 않아도 바로 사용할 수 있기 때문) -// -$g4['table_prefix'] = G4_TABLE_PREFIX; // 테이블명 접두사 -$g4['write_prefix'] = $g4['table_prefix'] . 'write_'; // 게시판 테이블명 접두사 - -$g4['auth_table'] = $g4['table_prefix'] . 'auth'; // 관리권한 설정 테이블 -$g4['config_table'] = $g4['table_prefix'] . 'config'; // 기본환경 설정 테이블 -$g4['group_table'] = $g4['table_prefix'] . 'group'; // 게시판 그룹 테이블 -$g4['group_member_table'] = $g4['table_prefix'] . 'group_member'; // 게시판 그룹+회원 테이블 -$g4['board_table'] = $g4['table_prefix'] . 'board'; // 게시판 설정 테이블 -$g4['board_file_table'] = $g4['table_prefix'] . 'board_file'; // 게시판 첨부파일 테이블 -$g4['board_good_table'] = $g4['table_prefix'] . 'board_good'; // 게시물 추천,비추천 테이블 -$g4['board_new_table'] = $g4['table_prefix'] . 'board_new'; // 게시판 새글 테이블 -$g4['login_table'] = $g4['table_prefix'] . 'login'; // 로그인 테이블 (접속자수) -$g4['mail_table'] = $g4['table_prefix'] . 'mail'; // 회원메일 테이블 -$g4['member_table'] = $g4['table_prefix'] . 'member'; // 회원 테이블 -$g4['memo_table'] = $g4['table_prefix'] . 'memo'; // 메모 테이블 -$g4['poll_table'] = $g4['table_prefix'] . 'poll'; // 투표 테이블 -$g4['poll_etc_table'] = $g4['table_prefix'] . 'poll_etc'; // 투표 기타의견 테이블 -$g4['point_table'] = $g4['table_prefix'] . 'point'; // 포인트 테이블 -$g4['popular_table'] = $g4['table_prefix'] . 'popular'; // 인기검색어 테이블 -$g4['scrap_table'] = $g4['table_prefix'] . 'scrap'; // 게시글 스크랩 테이블 -$g4['visit_table'] = $g4['table_prefix'] . 'visit'; // 방문자 테이블 -$g4['visit_sum_table'] = $g4['table_prefix'] . 'visit_sum'; // 방문자 합계 테이블 -$g4['token_table'] = $g4['table_prefix'] . 'token'; // 토큰 테이블 +*/ // // 기타 diff --git a/extend/shop.extend.php b/extend/shop.extend.php index 4a427ba40..e1f3e827c 100644 --- a/extend/shop.extend.php +++ b/extend/shop.extend.php @@ -1,5 +1,8 @@