=') && defined('G5_BROWSCAP_USE') && G5_BROWSCAP_USE) { // Browscap 캐시 파일이 있으면 실행 if(defined('G5_VISIT_BROWSCAP_USE') && G5_VISIT_BROWSCAP_USE && is_file(G5_DATA_PATH.'/cache/browscap_cache.php')) { include_once(G5_PLUGIN_PATH.'/browscap/Browscap.php'); $browscap = new phpbrowscap\Browscap(G5_DATA_PATH.'/cache'); $browscap->doAutoUpdate = false; $browscap->cacheFilename = 'browscap_cache.php'; $info = $browscap->getBrowser($_SERVER['HTTP_USER_AGENT']); $vi_browser = $info->Comment; $vi_os = $info->Platform; $vi_device = $info->Device_Type; } } $sql = " insert {$g5['visit_table']} ( vi_id, vi_ip, vi_date, vi_time, vi_referer, vi_agent, vi_browser, vi_os, vi_device ) values ( '{$vi_id}', '{$remote_addr}', '".G5_TIME_YMD."', '".G5_TIME_HIS."', '{$referer}', '{$user_agent}', '{$vi_browser}', '{$vi_os}', '{$vi_device}' ) "; $result = sql_query($sql, FALSE); // 정상으로 INSERT 되었다면 방문자 합계에 반영 if ($result) { $sql = " insert {$g5['visit_sum_table']} ( vs_count, vs_date) values ( 1, '".G5_TIME_YMD."' ) "; $result = sql_query($sql, FALSE); // DUPLICATE 오류가 발생한다면 이미 날짜별 행이 생성되었으므로 UPDATE 실행 if (!$result) { $sql = " update {$g5['visit_sum_table']} set vs_count = vs_count + 1 where vs_date = '".G5_TIME_YMD."' "; $result = sql_query($sql); } // INSERT, UPDATE 된건이 있다면 기본환경설정 테이블에 저장 // 방문객 접속시마다 따로 쿼리를 하지 않기 위함 (엄청난 쿼리를 줄임 ^^) // 오늘 $sql = " select vs_count as cnt from {$g5['visit_sum_table']} where vs_date = '".G5_TIME_YMD."' "; $row = sql_fetch($sql); $vi_today = $row['cnt']; // 어제 $sql = " select vs_count as cnt from {$g5['visit_sum_table']} where vs_date = DATE_SUB('".G5_TIME_YMD."', INTERVAL 1 DAY) "; $row = sql_fetch($sql); $vi_yesterday = $row['cnt']; // 최대 $sql = " select max(vs_count) as cnt from {$g5['visit_sum_table']} "; $row = sql_fetch($sql); $vi_max = $row['cnt']; // 전체 $sql = " select sum(vs_count) as total from {$g5['visit_sum_table']} "; $row = sql_fetch($sql); $vi_sum = $row['total']; $visit = '오늘:'.$vi_today.',어제:'.$vi_yesterday.',최대:'.$vi_max.',전체:'.$vi_sum; // 기본설정 테이블에 방문자수를 기록한 후 // 방문자수 테이블을 읽지 않고 출력한다. // 쿼리의 수를 상당부분 줄임 sql_query(" update {$g5['config_table']} set cf_visit = '{$visit}' "); } } ?>