diff options
| author | Matthijs Kuiper <info@matthijskuiper.nl> | 2017-02-04 16:05:45 +0100 |
|---|---|---|
| committer | Matthijs Kuiper <info@matthijskuiper.nl> | 2017-02-04 16:05:45 +0100 |
| commit | 40dfa7d5c0dc8e4cb2c95e403b6b4b2c4bf70644 (patch) | |
| tree | 6ac6279ac26749ffe7ca0ae9603fbcae2e757e6e /html/pages/admin | |
Original UTStats beta 4.2.84.2.8
Diffstat (limited to 'html/pages/admin')
| -rwxr-xr-x | html/pages/admin/acelog.php | 318 | ||||
| -rwxr-xr-x | html/pages/admin/aclog.php | 108 | ||||
| -rwxr-xr-x | html/pages/admin/check.php | 408 | ||||
| -rwxr-xr-x | html/pages/admin/dmatch.php | 105 | ||||
| -rwxr-xr-x | html/pages/admin/dplayer.php | 76 | ||||
| -rwxr-xr-x | html/pages/admin/dpmatch.php | 106 | ||||
| -rwxr-xr-x | html/pages/admin/editgames.php | 74 | ||||
| -rwxr-xr-x | html/pages/admin/editgamestype.php | 228 | ||||
| -rwxr-xr-x | html/pages/admin/editweapons.php | 58 | ||||
| -rwxr-xr-x | html/pages/admin/emptydb.php | 62 | ||||
| -rwxr-xr-x | html/pages/admin/index.htm | 0 | ||||
| -rwxr-xr-x | html/pages/admin/ipsearch.php | 58 | ||||
| -rwxr-xr-x | html/pages/admin/main.php | 117 | ||||
| -rwxr-xr-x | html/pages/admin/mplayers.php | 91 | ||||
| -rwxr-xr-x | html/pages/admin/mservers.php | 41 | ||||
| -rwxr-xr-x | html/pages/admin/pban.php | 74 | ||||
| -rwxr-xr-x | html/pages/admin/pinfo.php | 91 | ||||
| -rwxr-xr-x | html/pages/admin/plm.php | 329 | ||||
| -rwxr-xr-x | html/pages/admin/recalcflags.php | 72 | ||||
| -rwxr-xr-x | html/pages/admin/recalcranking.php | 77 | ||||
| -rwxr-xr-x | html/pages/admin/utdclog.php | 137 | ||||
| -rwxr-xr-x | html/pages/admin/utdcshot.php | 22 |
22 files changed, 2652 insertions, 0 deletions
diff --git a/html/pages/admin/acelog.php b/html/pages/admin/acelog.php new file mode 100755 index 0000000..365174a --- /dev/null +++ b/html/pages/admin/acelog.php @@ -0,0 +1,318 @@ +<?php
+if (empty($import_adminkey) or isset($_REQUEST['import_adminkey']) or $import_adminkey != $adminkey) die('Access denied');
+
+$filename = (!empty($_REQUEST['filename'])) ? my_stripslashes($_REQUEST['filename']) : '';
+$filename = str_replace(array('..', '/', '\\', '<', ':'), array(), $filename);
+
+function InvertSort($curr_field, $order, $sort) {
+ if ($curr_field != $order) return(($curr_field == "time") ? "DESC" : "ASC");
+ if ($sort == 'ASC') return('DESC');
+ return('ASC');
+}
+
+function SortPic($curr_field, $order, $sort) {
+ if ($curr_field != $order) return;
+ $fname = 'images/s_'. strtolower($sort) .'.png';
+ if (!file_exists($fname)) return;
+ return(' <img src="'. $fname .'" border="0" width="11" height="9" alt="" title="('.strtolower($sort).'ending)">');
+}
+
+// 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 '
+
+ <script language = "javascript">
+
+ function timefilter() {
+ var filter = document.filter.show.value;
+ window.open("admin.php?key='.$adminkey.'&action='.$action.'&show="+filter, "_parent");
+ }
+
+ function toggletimeouts() {
+ if (document.filter.timeouts.checked == true) {
+ window.open("admin.php?key='.$adminkey.'&action='.$action.'&timeout=1", "_parent");
+ }
+ else {
+ window.open("admin.php?key='.$adminkey.'&action='.$action.'&timeout=0", "_parent");
+ }
+ }
+ </script>
+ <form name = "filter">
+ <table class = "box" border="0" cellpadding="1" cellspacing="2" width="720">
+ <tr>
+ <td class="heading" align="center" width="100%" colspan="5">Available ACE Logs:</td>
+ </tr>
+ <tr>
+ <td class="smheading" align="center" width="100%" colspan = "5">Filter:
+ <select onchange = "javascript:timefilter()" name = "show">
+ <option value = "all"'.($show == "all" ? ' selected=selected' : '').'>All</option>
+ <option value = "day"'.($show == "day" ? ' selected=selected' : '').'>Last day</option>
+ <option value = "week"'.($show == "week" ? ' selected=selected' : '').'>Last week</option>
+ <option value = "month"'.($show == "month" ? ' selected=selected' : '').'>Last month</option>
+ </select>
+ <input name = "timeouts" type = "checkbox" value = 1 onchange = "javascript:toggletimeouts()"'.($timeout == 1 ? ' checked="yes"' : '').'> Show timeouts</td>
+ </tr>
+ <tr>
+ <td class="smheading" align="center"><a class="smheading" href="admin.php?key='.$adminkey.'&action='.$action.'&order=time&sort='.InvertSort('time', $order, $sort).'">Time</a>'.SortPic('time', $order, $sort).'</td>
+ <td class="smheading" align="center"><a class="smheading" href="admin.php?key='.$adminkey.'&action='.$action.'&order=name&sort='.InvertSort('name', $order, $sort).'">Player Name</a>'.SortPic('name', $order, $sort).'</td>
+ <td class="smheading" align="center"><a class="smheading" href="admin.php?key='.$adminkey.'&action='.$action.'&order=reason&sort='.InvertSort('reason', $order, $sort).'">Kick Reason</a>'.SortPic('reason', $order, $sort).'</td>
+ <td class="smheading" align="center" colspan = 2></td>
+ </tr>';
+ $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;
+
+ preg_match('/\d{4}\.\d{2}.\d{2}.\d{2}.\d{2}.\d{2}/', $filename, &$date);
+ $adate = preg_split('/\./', $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
+
+ $fp = my_fopen('logs/ace/'.$filename, 'rb', $compression = NULL);
+ 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 '<tr><td class="grey" colspan="5">No logs available!</td></tr>';
+ } 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 '<tr><td class="'.$class.'">';
+ $tmp = substr($log, strlen($log) - (23 + $extra), 19);
+ $tmp = str_replace('.', '', $tmp);
+ // $ts = mtimestamp($tmp);
+ echo ' <a class="'.$class.'" href="admin.php?key='.$adminkey.'&action='.$action.'&filename='.urlencode($log).'">'.$TimeStamp.'</a>';
+ echo '</td><td class="'.$class.'">';
+ echo '<a class="'.$class.'" href="admin.php?key='.$adminkey.'&action='.$action.'&filename='.urlencode($log).'">'.$PlayerName.'</a>';
+ echo '</td><td class="'.$class.'">';
+ echo '<a class="'.$class.'" href="admin.php?key='.$adminkey.'&action='.$action.'&filename='.urlencode($log).'">'.$KickReason.'</a>';
+ echo '</td><td class="'.$class.'" align="right">';
+ $d_size = file_size_info(filesize('logs/ace/'. $log));
+ echo $d_size['size'] .' '. $d_size['type'];
+ echo '</td><td class="'.$class.'" align="center">';
+ echo '<a href="admin.php?key='.$adminkey.'&action='.$action.'&filename='.urlencode($log).'&del=1"><img src="images/del.png" border="0" width="16" height="16" title="Delete" alt="Delete" /></a>';
+ echo '</td></tr>';
+ }
+ }
+ echo '</form>';
+}
+
+
+if (!empty($filename)) {
+ if (!file_exists('logs/ace/'. $filename) or !is_file('logs/ace/'. $filename)) die('File not found (2)');
+ echo'<br><table class = "box" border="0" cellpadding="1" cellspacing="2" width="720">
+ <tr>
+ <td class="smheading" align="center" width="95%" colspan="4">'.$filename.'</td>
+ <td class="smheading" align="center" width="5%" align="right">';
+ echo '<a href="admin.php?key='.$adminkey.'&action='.$action.'&filename='.urlencode($filename).'&del=1"><img src="images/del.png" border="0" width="16" height="16" title="Delete" alt="Delete" /></a>';
+ echo '</td>
+ </tr>';
+ 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 '<tr><td class="grey" colspan="5"><span style="font-family: monospace;">';
+ echo '<a href = "logs/ace/'.preg_replace('/\+/', '%20', urlencode($filename)).'" target = "_blank"><img src = "logs/ace/'.preg_replace('/\+/', '%20', urlencode($filename)).'" width = 100% border = 0></a>';
+ echo '</span></td></tr>';
+ }
+ else {
+ $fp = my_fopen('logs/ace/'.$filename, 'rb', $compression = NULL);
+ if (!$fp) die("Error opening file");
+
+ $i = 0;
+ echo '<tr><td class="grey" colspan="5"><span style="font-family: monospace;">';
+
+ while (($line = my_fgets($fp, 5000, $compression)) !== FALSE) {
+ /*
+ $i++;
+ $class = ($i%2) ? 'grey' : 'grey2';
+ echo '<tr><td class="'.$class.'" colspan="4">';
+ echo '<span style="font-family: monospace;">';
+ echo htmlentities($line);
+ echo '</span>';
+ echo '</td></tr>';
+ */
+ echo wordwrap(htmlentities($line), 80, '<br />', 1) ."<br />";
+ $info = preg_split('/\s/', $line, 3);
+ $info[2] = preg_replace('/[\r\n]/', '', $info[2]);
+ if ($info[1] == "FileName.....:") {
+ $Screenshot = basename($info[2]);
+ }
+
+ }
+ echo '</span></td></tr>';
+ my_fclose($fp, $compression);
+
+ // look for a matching ace screenshot
+ if (isset($Screenshot) and file_exists('logs/ace/' . $Screenshot)) {
+ echo '<tr>
+ <td class="smheading" align="center" width="95%" colspan="4">'.$Screenshot.'</td>
+ <td class="smheading" align="center" width="5%" align="right">';
+ echo '<a href="admin.php?key='.$adminkey.'&action='.$action.'&filename='.preg_replace('/\+/', '%20', urlencode($Screenshot)).'&del=1"><img src="images/del.png" border="0" width="16" height="16" title="Delete" alt="Delete" /></a>';
+ echo '</td>
+ </tr>';
+
+ echo '<tr><td class="grey" colspan="5"><span style="font-family: monospace;">';
+ echo '<a href = "logs/ace/'.preg_replace('/\+/', '%20', urlencode($Screenshot)).'" target = "_blank"><img src = "logs/ace/'.preg_replace('/\+/', '%20', urlencode($Screenshot)).'" width = 100% border = 0></a>';
+ echo '</span></td></tr>';
+ }
+ }
+}
+
+echo '</tr>';
+if (!empty($filename)) echo'<tr><td class="smheading" align="center" colspan="5"><a class="grey" href="./admin.php?key='.$_REQUEST[key].'&action='.$action.'">Go Back To Logfile Overview</a></td></tr>';
+echo'<tr><td class="smheading" align="center" colspan="5"><a class="grey" href="./admin.php?key='.$_REQUEST[key].'">Go Back To Admin Page</a></td></tr>';
+echo '</table>';
+
+?>
diff --git a/html/pages/admin/aclog.php b/html/pages/admin/aclog.php new file mode 100755 index 0000000..ada35c8 --- /dev/null +++ b/html/pages/admin/aclog.php @@ -0,0 +1,108 @@ +<?php
+if (empty($import_adminkey) or isset($_REQUEST['import_adminkey']) or $import_adminkey != $adminkey) die('bla');
+
+$filename = (!empty($_REQUEST['filename'])) ? my_stripslashes($_REQUEST['filename']) : '';
+$filename = str_replace(array('..', '/', '\\', '<', ':'), array(), $filename);
+
+
+if (!empty($filename)) {
+ if (!file_exists('logs/ac/'. $filename) or !is_file('logs/ac/'. $filename)) die('bla');
+ if (isset($_REQUEST['del'])) {
+ unlink('logs/ac/'. $filename);
+ $filename = '';
+ }
+}
+
+
+
+
+if (empty($filename)) {
+ echo'<br><table border="0" cellpadding="1" cellspacing="2" width="600">
+ <tr>
+ <td class="smheading" align="center" width="100%" colspan="4">Available AnthChecker Logs:</td>
+ </tr>';
+ $logdir = opendir('logs/ac');
+ $logs = array();
+ $sort = array();
+ $i = 0;
+ while (false !== ($filename = readdir($logdir))) {
+ if (!is_file('logs/ac/'. $filename)) continue;
+ if ($filename == '.htaccess' or $filename == 'index.htm') continue;
+ $i++;
+ $logs[$i] = $filename;
+ $extra = 0;
+ if (substr($filename, -4) == '.bz2') $extra = 4;
+ if (substr($filename, -3) == '.gz') $extra = 3;
+
+ $sort[$i] = substr($filename, strlen($filename) - (23 + $extra), 19);
+ }
+ closedir($logdir);
+ if (count($logs) == 0) {
+ echo '<tr><td class="grey" colspan="4">No logs available!</td></tr>';
+ } else {
+ arsort($sort);
+ $i = 0;
+ foreach($sort as $id => $date) {
+ $log = $logs[$id];
+ $extra = 0;
+ if (substr($log, -4) == '.bz2') $extra = 4;
+ if (substr($log, -3) == '.gz') $extra = 3;
+
+ $i++;
+ $class = ($i%2) ? 'grey' : 'grey2';
+ echo '<tr><td class="'.$class.'">';
+ $tmp = substr($log, strlen($log) - (23 + $extra), 19);
+ $tmp = str_replace('.', '', $tmp);
+ $ts = mtimestamp($tmp);
+ echo ' <a class="'.$class.'" href="admin.php?key='.$adminkey.'&action='.$action.'&filename='.urlencode($log).'">'.date('Y-m-d H:i', $ts).'</a>';
+ echo '</td><td class="'.$class.'">';
+ echo '<a class="'.$class.'" href="admin.php?key='.$adminkey.'&action='.$action.'&filename='.urlencode($log).'">'.substr($log, 6, strlen($log) - 30 - $extra).'</a>';
+ echo '</td><td class="'.$class.'" align="right">';
+ $d_size = file_size_info(filesize('logs/ac/'. $log));
+ echo $d_size['size'] .' '. $d_size['type'];
+ echo '</td><td class="'.$class.'" align="center">';
+ echo '<a href="admin.php?key='.$adminkey.'&action='.$action.'&filename='.urlencode($log).'&del=1"><img src="images/del.png" border="0" width="16" height="16" title="Delete" alt="Delete" /></a>';
+ echo '</td></tr>';
+ }
+ }
+}
+
+
+if (!empty($filename)) {
+ if (!file_exists('logs/ac/'. $filename) or !is_file('logs/ac/'. $filename)) die('bla');
+ echo'<br><table border="0" cellpadding="1" cellspacing="2" width="600">
+ <tr>
+ <td class="smheading" align="center" width="95%" colspan="3">'.$filename.'</td>
+ <td class="smheading" align="center" width="5%" align="right">';
+ echo '<a href="admin.php?key='.$adminkey.'&action='.$action.'&filename='.urlencode($filename).'&del=1"><img src="images/del.png" border="0" width="16" height="16" title="Delete" alt="Delete" /></a>';
+ echo '</td>
+ </tr>';
+
+ $fp = my_fopen('logs/ac/'.$filename, 'rb', $compression = NULL);
+ if (!$fp) die("Error opening file");
+
+ $i = 0;
+ echo '<tr><td class="grey" colspan="4"><span style="font-family: monospace;">';
+
+ while (($line = my_fgets($fp, 5000, $compression)) !== FALSE) {
+ /*
+ $i++;
+ $class = ($i%2) ? 'grey' : 'grey2';
+ echo '<tr><td class="'.$class.'" colspan="4">';
+ echo '<span style="font-family: monospace;">';
+ echo htmlentities($line);
+ echo '</span>';
+ echo '</td></tr>';
+ */
+ echo wordwrap(htmlentities($line), 80, '<br />', 1) ."<br />";
+ }
+ echo '</span></td></tr>';
+ my_fclose($fp, $compression);
+}
+
+echo '</tr>';
+if (!empty($filename)) echo'<tr><td class="smheading" align="center" colspan="4"><a class="grey" href="./admin.php?key='.$_REQUEST[key].'&action='.$action.'">Go Back To Logfile Overview</a></td></tr>';
+echo'<tr><td class="smheading" align="center" colspan="4"><a class="grey" href="./admin.php?key='.$_REQUEST[key].'">Go Back To Admin Page</a></td></tr>';
+echo '</table>';
+
+?>
diff --git a/html/pages/admin/check.php b/html/pages/admin/check.php new file mode 100755 index 0000000..a03bf91 --- /dev/null +++ b/html/pages/admin/check.php @@ -0,0 +1,408 @@ +<?php +if (empty($import_adminkey) or isset($_REQUEST['import_adminkey']) or $import_adminkey != $adminkey) die('bla'); + +echo ' + <center> + <table class = "box" border="0" cellpadding="1" cellspacing="2" width="720"> + <tbody><tr> + <td class="heading" align="center" colspan="2">Server configuration check</td> + </tr></tbody></table><br>'; + +// Check access rights +echo ' + <table class="box" border="0" cellpadding="1" cellspacing="2"> + <tr> + <td class="smheading" align="center" height="25" width="550" colspan="2">Checking access rights</td> + </tr>'; + +// directories +foreach (array("logs", "logs/ac", "logs/backup", "logs/utdc", "logs/ace") as $dir) +{ + echo ' + <tr> + <td class="smheading" align="left" width="350">', $dir, '</td>'; + if (!file_exists($dir)) { + if (mkdir($dir, 0777)) { + echo ' + <td class="warn" align="left" width="200">Created</td></tr>'; + } + else { + echo ' + <td class="warn" align="left" width="200">Not found!</td></tr>'; + } + } + else if (!is_dir($dir)) { + echo ' + <td class="warn" align="left" width="200">Not a directory!</td></tr>'; + } + else if (!is_writable($dir)) { + if (@chmod($dir, 0777)) { + echo ' + <td class="grey" align="left" width="200">SET</td></tr>'; + } + else { + echo ' + <td class="warn" align="left" width="200">Incorrect access rights: ' , substr(sprintf('%o', fileperms($dir)), -4) , '</td></tr>'; + } + } + else { + echo ' + <td class="grey" align="left" width="200">OK</td></tr>'; + } +} + +// files: +foreach (array("includes/ftptimestamp.php") as $file) +{ + echo ' + <tr> + <td class="smheading" align="left" width="350">', $file, '</td>'; + if (!file_exists($file)) { + echo ' + <td class="warn" align="left" width="200">Not found!</td></tr>'; + } + else if (!is_file($file)) { + echo ' + <td class="warn" align="left" width="200">Not a file!</td></tr>'; + } + else if (!is_writable($file)) { + if (@chmod($file, 0777)) { + echo ' + <td class="grey" align="left" width="200">SET</td></tr>'; + } + else { + echo ' + <td class="warn" align="left" width="200">Incorrect access rights: ' , substr(sprintf('%o', fileperms($file)), -4) , '</td></tr>'; + } + } + else { + echo ' + <td class="grey" align="left" width="200">OK</td></tr>'; + } +} + +echo ' + </tbody></table> +<div class="opnote">* Might not work correctly on Windows systems *</div><br>'; + + +// connect to the database and check structure +echo ' + <table class="box" border="0" cellpadding="1" cellspacing="2"> + <tr> + <td class="smheading" align="center" height="25" width="550" colspan="2">Checking mysql tables</td> + </tr>'; + +// database creation array +// to add a database simply add $create_table['dbname'] = "database creation sql" +$create_table['uts_events'] = " +CREATE TABLE `uts_events` ( + `id` mediumint(10) NOT NULL auto_increment, + `matchid` mediumint(10) NOT NULL default '0', + `playerid` tinyint(3) NOT NULL default '0', + `col0` varchar(20) NOT NULL default '', + `col1` varchar(120) NOT NULL default '', + `col2` varchar(120) NOT NULL default '', + `col3` varchar(120) NOT NULL default '', + `col4` varchar(120) NOT NULL default '', + PRIMARY KEY (`id`) +); +"; + +$create_table['uts_games'] = " +CREATE TABLE `uts_games` ( + `id` tinyint(3) unsigned NOT NULL auto_increment, + `gamename` varchar(100) NOT NULL default '', + `name` varchar(100) NOT NULL default '', + PRIMARY KEY (`id`) +) ENGINE=MyISAM AUTO_INCREMENT=9 ; +"; + +$create_table['uts_gamestype'] = " +CREATE TABLE `uts_gamestype` ( + `id` smallint(5) unsigned NOT NULL auto_increment, + `serverip` varchar(21) NOT NULL default '', + `gamename` varchar(100) NOT NULL default '', + `mutator` varchar(100) NOT NULL default '', + `gid` tinyint(3) unsigned NOT NULL default '0', + PRIMARY KEY (`id`) +) ENGINE=MyISAM; +"; + +$create_table['uts_ignoreips'] = " +CREATE TABLE IF NOT EXISTS `uts_ignoreips` ( + `ip` bigint(15) NOT NULL default '0', + PRIMARY KEY (`ip`) +) ENGINE=MyISAM DEFAULT CHARSET=latin1; +"; + +$create_table['uts_killsmatrix'] = " +CREATE TABLE `uts_killsmatrix` ( + `matchid` mediumint(8) unsigned NOT NULL default '0', + `killer` tinyint(4) NOT NULL default '0', + `victim` tinyint(4) NOT NULL default '0', + `kills` tinyint(3) unsigned NOT NULL default '0', + KEY `matchid` (`matchid`) +) ENGINE=MyISAM; +"; + +$create_table['uts_match'] = " +CREATE TABLE `uts_match` ( + `id` mediumint(10) NOT NULL auto_increment, + `time` varchar(14) default NULL, + `servername` varchar(100) NOT NULL default '', + `serverip` varchar(21) NOT NULL default '0', + `gamename` varchar(100) NOT NULL default '0', + `gid` tinyint(3) unsigned NOT NULL default '0', + `gametime` float NOT NULL default '0', + `mutators` longtext NOT NULL, + `insta` tinyint(1) NOT NULL default '0', + `tournament` varchar(5) NOT NULL default '', + `teamgame` varchar(5) NOT NULL default '', + `mapname` varchar(100) NOT NULL default '', + `mapfile` varchar(100) NOT NULL default '', + `serverinfo` mediumtext NOT NULL, + `gameinfo` mediumtext NOT NULL, + `firstblood` int(10) unsigned NOT NULL default '0', + `frags` mediumint(5) NOT NULL default '0', + `deaths` mediumint(5) NOT NULL default '0', + `kills` mediumint(5) NOT NULL default '0', + `suicides` mediumint(5) NOT NULL default '0', + `teamkills` mediumint(5) NOT NULL default '0', + `assaultid` varchar(10) NOT NULL default '', + `ass_att` tinyint(1) NOT NULL default '0', + `ass_win` tinyint(4) NOT NULL default '0', + `t0` tinyint(1) NOT NULL default '0', + `t1` tinyint(1) NOT NULL default '0', + `t2` tinyint(1) NOT NULL default '0', + `t3` tinyint(1) NOT NULL default '0', + `t0score` mediumint(5) NOT NULL default '0', + `t1score` mediumint(5) NOT NULL default '0', + `t2score` mediumint(5) NOT NULL default '0', + `t3score` mediumint(5) NOT NULL default '0', + PRIMARY KEY (`id`), + KEY `serverip` (`serverip`) +) ENGINE=MyISAM AUTO_INCREMENT=83 ; +"; + +$create_table['uts_pinfo'] = " +CREATE TABLE `uts_pinfo` ( + `id` int(10) unsigned NOT NULL auto_increment, + `name` varchar(50) NOT NULL default '', + `country` char(2) NOT NULL default '', + `banned` enum('Y','N') NOT NULL default 'N', + PRIMARY KEY (`id`), + KEY `name` (`name`(22)) +) ENGINE=MyISAM AUTO_INCREMENT=136 ; +"; + +$create_table['uts_player'] = " +CREATE TABLE `uts_player` ( + `id` mediumint(10) NOT NULL auto_increment, + `matchid` mediumint(10) NOT NULL default '0', + `insta` tinyint(1) NOT NULL default '0', + `playerid` tinyint(3) NOT NULL default '0', + `pid` int(10) unsigned NOT NULL default '0', + `team` tinyint(2) unsigned NOT NULL default '0', + `isabot` tinyint(1) NOT NULL default '0', + `country` char(2) NOT NULL default '', + `ip` int(10) unsigned NOT NULL default '0', + `gid` tinyint(3) unsigned NOT NULL default '0', + `gametime` float NOT NULL default '0', + `gamescore` smallint(5) NOT NULL default '0', + `lowping` smallint(5) unsigned NOT NULL default '0', + `highping` smallint(5) unsigned NOT NULL default '0', + `avgping` smallint(5) unsigned NOT NULL default '0', + `frags` smallint(5) NOT NULL default '0', + `deaths` smallint(5) unsigned NOT NULL default '0', + `kills` smallint(5) unsigned NOT NULL default '0', + `suicides` smallint(5) unsigned NOT NULL default '0', + `teamkills` smallint(5) unsigned NOT NULL default '0', + `eff` float NOT NULL default '0', + `accuracy` float NOT NULL default '0', + `ttl` float NOT NULL default '0', + `flag_taken` smallint(5) unsigned NOT NULL default '0', + `flag_dropped` smallint(5) unsigned NOT NULL default '0', + `flag_return` smallint(5) unsigned NOT NULL default '0', + `flag_capture` tinyint(3) unsigned NOT NULL default '0', + `flag_cover` smallint(5) unsigned NOT NULL default '0', + `flag_seal` smallint(5) unsigned NOT NULL default '0', + `flag_assist` smallint(5) unsigned NOT NULL default '0', + `flag_kill` mediumint(5) unsigned NOT NULL default '0', + `flag_pickedup` smallint(5) unsigned NOT NULL default '0', + `dom_cp` smallint(5) unsigned NOT NULL default '0', + `ass_obj` smallint(5) unsigned NOT NULL default '0', + `spree_double` smallint(5) unsigned NOT NULL default '0', + `spree_triple` smallint(5) unsigned NOT NULL default '0', + `spree_multi` smallint(5) unsigned NOT NULL default '0', + `spree_mega` tinyint(3) unsigned NOT NULL default '0', + `spree_ultra` tinyint(3) unsigned NOT NULL default '0', + `spree_monster` tinyint(3) unsigned NOT NULL default '0', + `spree_kill` smallint(5) unsigned NOT NULL default '0', + `spree_rampage` smallint(5) unsigned NOT NULL default '0', + `spree_dom` tinyint(3) unsigned NOT NULL default '0', + `spree_uns` tinyint(3) unsigned NOT NULL default '0', + `spree_god` smallint(5) unsigned NOT NULL default '0', + `pu_pads` tinyint(3) unsigned NOT NULL default '0', + `pu_armour` tinyint(3) unsigned NOT NULL default '0', + `pu_keg` tinyint(3) unsigned NOT NULL default '0', + `pu_invis` tinyint(3) unsigned NOT NULL default '0', + `pu_belt` tinyint(3) unsigned NOT NULL default '0', + `pu_amp` tinyint(3) unsigned NOT NULL default '0', + `rank` float NOT NULL default '0', + PRIMARY KEY (`id`), + KEY `matchid` (`matchid`,`team`), + KEY `pid` (`pid`), + KEY `gid` (`gid`) +) ENGINE=MyISAM AUTO_INCREMENT=615 ; +"; + +$create_table['uts_rank'] = " +CREATE TABLE `uts_rank` ( + `id` mediumint(10) NOT NULL auto_increment, + `time` float unsigned NOT NULL default '0', + `pid` int(10) unsigned NOT NULL default '0', + `gid` tinyint(3) unsigned NOT NULL default '0', + `rank` float NOT NULL default '0', + `prevrank` float NOT NULL default '0', + `matches` mediumint(5) NOT NULL default '0', + PRIMARY KEY (`id`), + KEY `name` (`pid`,`gid`), + KEY `rank` (`rank`), + KEY `gamename` (`gid`,`rank`) +) ENGINE=MyISAM AUTO_INCREMENT=173 ; +"; + +$create_table['uts_weapons'] = " +CREATE TABLE `uts_weapons` ( + `id` tinyint(3) unsigned NOT NULL auto_increment, + `name` varchar(100) NOT NULL default '', + `image` varchar(50) NOT NULL default '', + `sequence` tinyint(3) unsigned NOT NULL default '200', + `hide` enum('N','Y') NOT NULL default 'N', + PRIMARY KEY (`id`), + KEY `name` (`name`(20)) +) ENGINE=MyISAM AUTO_INCREMENT=20 ; +"; + +$create_table['uts_weaponstats'] = " +CREATE TABLE `uts_weaponstats` ( + `matchid` mediumint(8) unsigned NOT NULL default '0', + `pid` int(10) unsigned NOT NULL default '0', + `weapon` tinyint(3) unsigned NOT NULL default '0', + `kills` mediumint(8) unsigned NOT NULL default '0', + `shots` int(10) unsigned NOT NULL default '0', + `hits` int(10) unsigned NOT NULL default '0', + `damage` int(10) unsigned NOT NULL default '0', + `acc` float unsigned NOT NULL default '0', + KEY `full` (`matchid`,`pid`) +) ENGINE=MyISAM; +"; + +foreach ($create_table as $table => $query) { + echo ' + <tr> + <td class="smheading" align="left" width="350">', $table, '</td>'; + if (small_count("SHOW TABLES LIKE '$table'") == 1) { + // database exists, check columns + echo ' + <td class="grey" align="left" width="200">OK</td></tr>'; + } + else { + if (mysql_query($query)) { + echo ' + <td class="grey" align="left" width="200">Created</td></tr>'; + } + else { + echo ' + <td class="warn" align="left" width="200">Not found!</td></tr>'; + } + } +} +echo ' + </tbody></table><br>'; + +// Check the weapons +$create_weapon['Translocator'] = "INSERT INTO `uts_weapons` VALUES (1, 'Translocator', 'trans.jpg', 1, 'N');"; +$create_weapon['Impact Hammer'] = "INSERT INTO `uts_weapons` VALUES (2, 'Impact Hammer', 'impact.jpg', 2, 'N');"; +$create_weapon['Enforcer'] = "INSERT INTO `uts_weapons` VALUES (3, 'Enforcer', 'enforcer.jpg', 3, 'N');"; +$create_weapon['Double Enforcer'] = "INSERT INTO `uts_weapons` VALUES (4, 'Double Enforcer', 'enforcer2.jpg', 4, 'N');"; +$create_weapon['GES Bio Rifle'] = "INSERT INTO `uts_weapons` VALUES (5, 'GES Bio Rifle', 'bio.jpg', 5, 'N');"; +$create_weapon['Ripper'] = "INSERT INTO `uts_weapons` VALUES (6, 'Ripper', 'ripper.jpg', 6, 'N');"; +$create_weapon['Shock Rifle'] = "INSERT INTO `uts_weapons` VALUES (7, 'Shock Rifle', 'shock.jpg', 7, 'N');"; +$create_weapon['Enhanced Shock Rifle'] = "INSERT INTO `uts_weapons` VALUES (8, 'Enhanced Shock Rifle', 'ishock.jpg', 8, 'N');"; +$create_weapon['Pulse Gun'] = "INSERT INTO `uts_w |
