2022-09-17 20:50:50 +09:00
< ? php
ini_set ( 'memory_limit' , '-1' );
2024-09-23 11:07:19 +09:00
include_once " ./_common.php " ;
2022-09-17 20:50:50 +09:00
// clean the output buffer
ob_end_clean ();
2024-09-19 20:57:39 +09:00
if ( ! ( version_compare ( phpversion (), '5.3.0' , '>=' ) && defined ( 'G5_BROWSCAP_USE' ) && G5_BROWSCAP_USE ))
die ( '사용할 수 없는 기능입니다.' );
2022-09-17 20:50:50 +09:00
2024-09-19 20:57:39 +09:00
if ( $is_admin != 'super' )
die ( '최고관리자로 로그인 후 실행해 주세요.' );
2022-09-17 20:50:50 +09:00
// browscap cache 파일 체크
2024-09-19 20:57:39 +09:00
if ( ! is_file ( G5_DATA_PATH . '/cache/browscap_cache.php' )) {
echo '<p>Browscap 정보가 없습니다. 아래 링크로 이동해 Browscap 정보를 업데이트 하세요.</p>' . PHP_EOL ;
echo '<p><a href="' . G5_ADMIN_URL . '/browscap.php">Browscap 업데이트</a></p>' . PHP_EOL ;
exit ;
2022-09-17 20:50:50 +09:00
}
2024-09-19 20:57:39 +09:00
include_once ( G5_PLUGIN_PATH . '/browscap/Browscap.php' );
$browscap = new phpbrowscap\Browscap ( G5_DATA_PATH . '/cache' );
2022-09-17 20:50:50 +09:00
$browscap -> doAutoUpdate = false ;
$browscap -> cacheFilename = 'browscap_cache.php' ;
// 데이터 변환
$rows = preg_replace ( '#[^0-9]#' , '' , $_GET [ 'rows' ]);
2024-09-19 20:57:39 +09:00
if ( ! $rows )
$rows = 100 ;
2022-09-17 20:50:50 +09:00
$sql_common = " from { $g5 [ 'visit_table' ] } where vi_agent <> '' and ( vi_browser = '' or vi_os = '' or vi_device = '' ) " ;
2024-09-30 01:58:32 +09:00
$sql_order = " ORDER BY vi_id DESC " ;
2024-09-19 20:57:39 +09:00
$sql_limit = " limit 0, $rows " ;
2022-09-17 20:50:50 +09:00
$sql = " select count(vi_id) as cnt $sql_common " ;
$row = sql_fetch ( $sql );
$total_count = $row [ 'cnt' ];
$sql = " select vi_id, vi_agent, vi_browser, vi_os, vi_device
$sql_common
$sql_order
$sql_limit " ;
$result = sql_query ( $sql );
$cnt = 0 ;
2024-09-19 20:57:39 +09:00
for ( $i = 0 ; $row = sql_fetch_array ( $result ); $i ++ ) {
$info = $browscap -> getBrowser ( $row [ 'vi_agent' ]);
2022-09-17 20:50:50 +09:00
2024-09-19 20:57:39 +09:00
$brow = $row [ 'vi_browser' ];
if ( ! $brow )
$brow = $info -> Comment ;
2022-09-17 20:50:50 +09:00
2024-09-19 20:57:39 +09:00
$os = $row [ 'vi_os' ];
if ( ! $os )
$os = $info -> Platform ;
2022-09-17 20:50:50 +09:00
2024-09-19 20:57:39 +09:00
$device = $row [ 'vi_device' ];
if ( ! $device )
$device = $info -> Device_Type ;
2022-09-17 20:50:50 +09:00
2024-09-19 20:57:39 +09:00
$sql2 = " update { $g5 [ 'visit_table' ] }
2022-09-17 20:50:50 +09:00
set vi_browser = '$brow' ,
vi_os = '$os' ,
vi_device = '$device'
where vi_id = '{$row[' vi_id ']}' " ;
2024-09-19 20:57:39 +09:00
sql_query ( $sql2 );
2022-09-17 20:50:50 +09:00
2024-09-19 20:57:39 +09:00
$cnt ++ ;
2022-09-17 20:50:50 +09:00
}
2024-09-19 20:57:39 +09:00
if (( $total_count - $cnt ) == 0 || $total_count == 0 )
echo '<div class="check_processing"></div><p>변환완료</p>' ;
2022-09-17 20:50:50 +09:00
else
2024-09-19 20:57:39 +09:00
echo '<p>총 ' . number_format ( $total_count ) . '건 중 ' . number_format ( $cnt ) . '건 변환완료<br><br>접속로그를 추가로 변환하시려면 아래 업데이트 버튼을 클릭해 주세요.</p><button type="button" id="run_update">업데이트</button>' ;