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 @@
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
+
+define('G4_USE_SHOP', false);
+
if (!defined('G4_USE_SHOP') || !G4_USE_SHOP) return;
include_once(G4_LIB_PATH.'/shop.lib.php');
@@ -10,21 +13,22 @@ include_once(G4_LIB_PATH.'/shop.lib.php');
// 미수금에 대한 QUERY 문
// 테이블 a 는 장바구니 ($g4[yc4_cart_table])
// 테이블 b 는 주문서 ($g4[yc4_order_table])
+/*
define(_MISU_QUERY_, "
- count(distinct b.od_id) as ordercount, /* 주문서건수 */
- count(a.ct_id) as itemcount, /* 상품건수 */
- (SUM((a.ct_amount + a.it_amount - a.cp_amount) * a.ct_qty) + b.od_send_cost + b.od_send_cost_area - b.od_coupon_amount - b.od_send_coupon) as orderamount , /* 주문합계 */
- (SUM(IF(a.ct_status = '취소' OR a.ct_status = '반품' OR a.ct_status = '품절', (a.ct_amount + a.it_amount) * a.ct_qty, 0))) as ordercancel, /* 주문취소 */
- (b.od_receipt_amount + b.od_receipt_point) as receiptamount, /* 입금합계 */
- (b.od_refund_amount) as receiptcancel, /* 입금취소 */
+ count(distinct b.od_id) as ordercount, -- 주문서건수
+ count(a.ct_id) as itemcount, -- 상품건수
+ (SUM((a.ct_amount + a.it_amount - a.cp_amount) * a.ct_qty) + b.od_send_cost + b.od_send_cost_area - b.od_coupon_amount - b.od_send_coupon) as orderamount , -- 주문합계
+ (SUM(IF(a.ct_status = '취소' OR a.ct_status = '반품' OR a.ct_status = '품절', (a.ct_amount + a.it_amount) * a.ct_qty, 0))) as ordercancel, -- 주문취소
+ (b.od_receipt_amount + b.od_receipt_point) as receiptamount, -- 입금합계
+ (b.od_refund_amount) as receiptcancel, -- 입금취소
(
(SUM((a.ct_amount + a.it_amount - a.cp_amount) * a.ct_qty) + b.od_send_cost + b.od_send_cost_area - b.od_coupon_amount - b.od_send_coupon) -
(SUM(IF(a.ct_status = '취소' OR a.ct_status = '반품' OR a.ct_status = '품절', (a.ct_amount + a.it_amount) * a.ct_qty, 0))) -
b.od_dc_amount -
(b.od_receipt_amount + b.od_receipt_point) +
(b.od_refund_amount)
- ) as misu /* 미수금 = 주문합계 - 주문취소 - DC - 입금합계 + 입금취소 */");
-
+ ) as misu -- 미수금 = 주문합계 - 주문취소 - DC - 입금합계 + 입금취소");
+*/
// 쇼핑몰 디렉토리
define('G4_SHOP_DIR', 'shop');
diff --git a/head.sub.php b/head.sub.php
index e6576d0b1..79155bd95 100644
--- a/head.sub.php
+++ b/head.sub.php
@@ -4,13 +4,14 @@ if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
$begin_time = get_microtime();
-$g4_head_title = $g4['title']; // 상태바에 표시될 제목
if (!isset($g4['title'])) {
$g4['title'] = $config['cf_title'];
$g4_head_title = $g4['title'];
}
-else
+else {
+ $g4_head_title = $g4['title']; // 상태바에 표시될 제목
$g4_head_title .= " : ".$config['cf_title'];
+}
// 현재 접속자
// 게시판 제목에 ' 포함되면 오류 발생
diff --git a/lib/common.lib.php b/lib/common.lib.php
index ffcede995..f018bddeb 100644
--- a/lib/common.lib.php
+++ b/lib/common.lib.php
@@ -1191,8 +1191,7 @@ function sql_select_db($db, $connect)
{
global $g4;
- if (strtolower($g4['charset']) == 'utf-8') @mysql_query(" set names utf8 ");
- else if (strtolower($g4['charset']) == 'euc-kr') @mysql_query(" set names euckr ");
+ @mysql_query(" set names utf8 ");
return @mysql_select_db($db, $connect);
}
diff --git a/lib/latest.lib.php b/lib/latest.lib.php
index ad01975c2..328a12fb1 100644
--- a/lib/latest.lib.php
+++ b/lib/latest.lib.php
@@ -1,4 +1,4 @@
-
+