'); } // Get filter, order and set sorting if (isset($_GET[order])) { $order = my_addslashes($_GET[order]); setcookie('uts_ace_order', $_GET['order'], time()+60*60*24*30*365); } else if (isset($_COOKIE['uts_ace_order'])){ $order = $_REQUEST['uts_ace_order']; } else { $order = "time"; } if (isset($_GET[sort])) { $sort = my_addslashes($_GET[sort]); setcookie('uts_ace_sort', $_GET['sort'], time()+60*60*24*30*365); } else if (isset($_COOKIE['uts_ace_sort'])){ $sort = $_REQUEST['uts_ace_sort']; } else { $sort = ($order == "time") ? "DESC" : "ASC"; } if (isset($_GET[timeout])) { $timeout = my_addslashes($_GET[timeout]); setcookie('uts_ace_timeout', $_GET['timeout'], time()+60*60*24*30*365); } else if (isset($_COOKIE['uts_ace_timeout'])){ $timeout = $_REQUEST['uts_ace_timeout']; } else { $timeout = 0; } if (isset($_GET[show])) { $show = my_addslashes($_GET[show]); setcookie('uts_ace_show', $_GET['show'], time()+60*60*24*30*365); } else if (isset($_COOKIE['uts_ace_show'])){ $show = $_REQUEST['uts_ace_show']; } else { $show = "week"; } if (!empty($filename)) { if (!file_exists('logs/ace/'. $filename) or !is_file('logs/ace/'. $filename)) die('File not found'); if (isset($_REQUEST['del'])) { unlink('logs/ace/'. $filename); $filename = ''; } } if (empty($filename)) { echo '
'; $logdir = opendir('logs/ace'); $logs = array(); $sortlogs = array(); $i = 0; while (false !== ($filename = readdir($logdir))) { if (!is_file('logs/ace/'. $filename)) continue; if ($filename == '.htaccess' or $filename == 'index.htm') continue; // ereg_match('/\d{4}\.\d{2}.\d{2}.\d{2}.\d{2}.\d{2}/', $filename, &$date); // $adate = preg_split('/\./', $date[0]); preg_match('/\d{4}\.\d{2}.\d{2}.\d{2}.\d{2}.\d{2}/', $filename, $date); $adate = explode(".", $date[0]); // filter on days if ($show != "all") { // calculate days $logAgeInDays = abs(strtotime(date("Y/m/d")) - strtotime("$adate[0]/$adate[1]/$adate[2]"))/68400-1; if (($show == "day" and $logAgeInDays > 1) or ($show == "week" and $logAgeInDays > 7) or ($show == "month" and $logAgeInDays > 31)) { continue; } } $i++; $TimeStamp = "unknown"; $PlayerName = "unknown"; $KickReason = "unknown"; if (substr($filename, strlen($filename) - strlen($import_ace_screenshot_extension)) == $import_ace_screenshot_extension and substr($filename, 0, strlen($import_ace_screenshot_start)) == $import_ace_screenshot_start) { // Screenshot $TimeStamp = "$adate[2]-$adate[1]-$adate[0] / $adate[3]:$adate[4]:$adate[5]"; $PlayerName = "Unknown"; $KickReason = "Screenshot"; } else { // logfile $compression = null; $fp = my_fopen("logs/ace/" . $filename, "rb", $compression); if (!$fp) die("Error opening file"); while (($line = my_fgets($fp, 5000, $compression)) !== FALSE) { $info = preg_split('/\s/', $line, 3); $info[2] = preg_replace('/[\r\n]+/', '', $info[2]); if ($info[1] == "TimeStamp....:") { $TimeStamp = $info[2]; } else if ($info[1] == "PlayerName...:") { $PlayerName = $info[2]; } else if ($info[1] == "KickReason...:") { $KickReason = $info[2]; } else if ($info[1] == "RequestedBy..:") { $KickReason = "Requested Screenshot"; } else if ($info[1] == "WARNING:") { $ainfo = preg_split('/\s/', $info[2]); if ($ainfo[5] == "UDP") { $TimeStamp = "$adate[2]-$adate[1]-$adate[0] / $adate[3]:$adate[4]:$adate[5]"; $PlayerName = $ainfo[1]; $KickReason = "Proxy/Tunnel"; } } else if ($info[2] == ": Kicked - [REASON] Timeout during check spawn") { $TimeStamp = "$adate[2]-$adate[1]-$adate[0] / $adate[3]:$adate[4]:$adate[5]"; $PlayerName = preg_replace('/[\[\]]/', '', $info[1]); $KickReason = "Timeout during check spawn"; } } my_fclose($fp, $compression); } // don't show timeout logs? if (($timeout == 0) and (($KickReason == "Timeout during check spawn") or ($KickReason == "Timeout during checks") or ($KickReason == "Timeout during initial check"))) { continue; } $logs[$i] = array($filename, $TimeStamp, $PlayerName, $KickReason); $extra = 0; if (substr($filename, -4) == '.bz2') $extra = 4; if (substr($filename, -3) == '.gz') $extra = 3; if ($order == "time") { $sortlogs[$i] = $date[0]; } else if ($order == "name") { $sortlogs[$i] = strtolower($PlayerName); } else if ($order == "reason") { $sortlogs[$i] = strtolower($KickReason); } } closedir($logdir); if (count($logs) == 0) { echo ''; } else { if ($sort == "ASC") { asort($sortlogs); } else { arsort($sortlogs); } $i = 0; foreach($sortlogs as $id => $date) { $log = $logs[$id][0]; if (empty($log)) { continue; } $TimeStamp = $logs[$id][1]; $PlayerName = $logs[$id][2]; $KickReason = $logs[$id][3]; $Screenshot = $logs[$id][4]; $extra = 0; if (substr($log, -4) == '.bz2') $extra = 4; if (substr($log, -3) == '.gz') $extra = 3; $i++; $class = ($i%2) ? 'grey' : 'grey2'; echo ''; } } echo ''; } if (!empty($filename)) { if (!file_exists('logs/ace/'. $filename) or !is_file('logs/ace/'. $filename)) die('File not found (2)'); echo'
Available ACE Logs:
Filter: Show timeouts
Time'.SortPic('time', $order, $sort).' Player Name'.SortPic('name', $order, $sort).' Kick Reason'.SortPic('reason', $order, $sort).'
No logs available!
'; $tmp = substr($log, strlen($log) - (23 + $extra), 19); $tmp = str_replace('.', '', $tmp); // $ts = mtimestamp($tmp); echo ''.$TimeStamp.''; echo ''; echo ''.$PlayerName.''; echo ''; echo ''.$KickReason.''; echo ''; $d_size = file_size_info(filesize('logs/ace/'. $log)); echo $d_size['size'] .' '. $d_size['type']; echo ''; echo 'Delete'; echo '
'; if (substr($filename, strlen($filename) - strlen($import_ace_screenshot_extension)) == $import_ace_screenshot_extension and substr($filename, 0, strlen($import_ace_screenshot_start)) == $import_ace_screenshot_start) { // screenshot echo ''; } else { $fp = my_fopen('logs/ace/'.$filename, 'rb', $compression = NULL); if (!$fp) die("Error opening file"); $i = 0; echo ''; */ echo wordwrap(htmlentities($line), 80, '
', 1) ."
"; $info = preg_split('/\s/', $line, 3); $info[2] = preg_replace('/[\r\n]/', '', $info[2]); if ($info[1] == "FileName.....:") { $Screenshot = basename($info[2]); } } echo ''; my_fclose($fp, $compression); // look for a matching ace screenshot if (isset($Screenshot) and file_exists('logs/ace/' . $Screenshot)) { echo ''; echo ''; } } } echo ''; if (!empty($filename)) echo''; echo''; echo '
'.$filename.' '; echo 'Delete'; echo '
'; echo ''; echo '
'; while (($line = my_fgets($fp, 5000, $compression)) !== FALSE) { /* $i++; $class = ($i%2) ? 'grey' : 'grey2'; echo '
'; echo ''; echo htmlentities($line); echo ''; echo '
'.$Screenshot.' '; echo 'Delete'; echo '
'; echo ''; echo '
Go Back To Logfile Overview
Go Back To Admin Page
'; ?>