234 lines
6.1 KiB
PHP
234 lines
6.1 KiB
PHP
<?php
|
|
/*
|
|
HLstatsX Community Edition - Real-time player and clan rankings and statistics
|
|
Copyleft (L) 2008-20XX Nicholas Hastings (nshastings@gmail.com)
|
|
http://www.hlxcommunity.com
|
|
|
|
HLstatsX Community Edition is a continuation of
|
|
ELstatsNEO - Real-time player and clan rankings and statistics
|
|
Copyleft (L) 2008-20XX Malte Bayer (steam@neo-soft.org)
|
|
http://ovrsized.neo-soft.org/
|
|
|
|
ELstatsNEO is an very improved & enhanced - so called Ultra-Humongus Edition of HLstatsX
|
|
HLstatsX - Real-time player and clan rankings and statistics for Half-Life 2
|
|
http://www.hlstatsx.com/
|
|
Copyright (C) 2005-2007 Tobias Oetzel (Tobi@hlstatsx.com)
|
|
|
|
HLstatsX is an enhanced version of HLstats made by Simon Garner
|
|
HLstats - Real-time player and clan rankings and statistics for Half-Life
|
|
http://sourceforge.net/projects/hlstats/
|
|
Copyright (C) 2001 Simon Garner
|
|
|
|
This program is free software; you can redistribute it and/or
|
|
modify it under the terms of the GNU General Public License
|
|
as published by the Free Software Foundation; either version 2
|
|
of the License, or (at your option) any later version.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with this program; if not, write to the Free Software
|
|
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|
|
|
For support and installation notes visit http://www.hlxcommunity.com
|
|
*/
|
|
|
|
define('IN_HLSTATS', true);
|
|
require('config.php');
|
|
$historical_cache=0;
|
|
if(defined('HISTORICAL_CACHE'))
|
|
{
|
|
$historical_cache=constant('HISTORICAL_CACHE');
|
|
}
|
|
|
|
if($historical_cache==1)
|
|
{
|
|
$rawmd5=md5(http_build_query($_REQUEST));
|
|
$dir1=substr($rawmd5,0,1);
|
|
$dir2=substr($rawmd5,1,1);
|
|
$cachetarget=sprintf("cache/%s/%s/%s", $dir1, $dir2, $rawmd5);
|
|
|
|
@mkdir("cache/$dir1");
|
|
@mkdir("cache/$dir1/$dir2");
|
|
|
|
if(file_exists($cachetarget))
|
|
{
|
|
file_put_contents("cache/cachehit",$cachetarget . "\n", FILE_APPEND);
|
|
echo file_get_contents($cachetarget);
|
|
die;
|
|
}
|
|
}
|
|
|
|
session_start();
|
|
|
|
if((!empty($_GET['logout'])) && $_GET['logout'] == '1') {
|
|
unset($_SESSION['loggedin']);
|
|
header("Location: http://".$_SERVER['HTTP_HOST'].$_SERVER['SCRIPT_NAME']);
|
|
die;
|
|
}
|
|
|
|
// Several stuff added by Malte Bayer
|
|
global $scripttime, $siteurlneo;
|
|
$scripttime = microtime(true);
|
|
$siteurlneo='http://'.$_SERVER['HTTP_HOST'].substr($_SERVER['PHP_SELF'],0,strpos($_SERVER['PHP_SELF'],strrchr($_SERVER['PHP_SELF'],'/'))+1);
|
|
$siteurlneo=str_replace('\\','/',$siteurlneo);
|
|
|
|
// Several Stuff end
|
|
|
|
foreach ($_SERVER as $key => $entry) {
|
|
if ($key !== 'HTTP_COOKIE') {
|
|
$search_pattern = array('/<script>/', '/<\/script>/', '/[^A-Za-z0-9.\-\/=:;_?#&~]/');
|
|
$replace_pattern = array('', '', '');
|
|
$entry = preg_replace($search_pattern, $replace_pattern, $entry);
|
|
|
|
if ($key == "PHP_SELF") {
|
|
if ((strrchr($entry, '/') !== '/hlstats.php') &&
|
|
(strrchr($entry, '/') !== '/ingame.php') &&
|
|
(strrchr($entry, '/') !== '/show_graph.php') &&
|
|
(strrchr($entry, '/') !== '/sig.php') &&
|
|
(strrchr($entry, '/') !== '/sig2.php') &&
|
|
(strrchr($entry, '/') !== '/index.php') &&
|
|
(strrchr($entry, '/') !== '/status.php') &&
|
|
(strrchr($entry, '/') !== '/top10.php') &&
|
|
(strrchr($entry, '/') !== '/config.php') &&
|
|
(strrchr($entry, '/') !== '/') &&
|
|
($entry !== '')) {
|
|
header("Location: http://$siteurlneo/hlstats.php");
|
|
exit;
|
|
}
|
|
}
|
|
$_SERVER[$key] = $entry;
|
|
}
|
|
}
|
|
|
|
@header('Content-Type: text/html; charset=utf-8');
|
|
|
|
// do not report NOTICE warnings
|
|
@error_reporting(E_ALL ^ E_NOTICE);
|
|
|
|
////
|
|
//// Initialisation
|
|
////
|
|
|
|
define('PAGE', 'HLSTATS');
|
|
|
|
///
|
|
/// Classes
|
|
///
|
|
|
|
// Load required files
|
|
require(INCLUDE_PATH . '/class_db.php');
|
|
require(INCLUDE_PATH . '/class_table.php');
|
|
require(INCLUDE_PATH . '/functions.php');
|
|
|
|
$db_classname = 'DB_' . DB_TYPE;
|
|
if ( class_exists($db_classname) )
|
|
{
|
|
$db = new $db_classname(DB_ADDR, DB_USER, DB_PASS, DB_NAME, DB_PCONNECT);
|
|
}
|
|
else
|
|
{
|
|
error('Database class does not exist. Please check your config.php file for DB_TYPE');
|
|
}
|
|
|
|
$g_options = getOptions();
|
|
|
|
if (!isset($g_options['scripturl'])) {
|
|
$g_options['scripturl'] = isset($_SERVER['PHP_SELF']) ? $_SERVER['PHP_SELF'] : getenv('PHP_SELF');
|
|
}
|
|
|
|
////
|
|
//// Main
|
|
////
|
|
|
|
$game = valid_request(isset($_GET['game'])?$_GET['game']:'', 0);
|
|
|
|
if (!$game)
|
|
{
|
|
$game = isset($_SESSION['game'])?$_SESSION['game']:'';
|
|
}
|
|
else
|
|
{
|
|
$_SESSION['game'] = $game;
|
|
}
|
|
|
|
if (!$realgame && $game)
|
|
{
|
|
$realgame = getRealGame($game);
|
|
$_SESSION['realgame'] = $realgame;
|
|
}
|
|
|
|
$mode = isset($_GET['mode'])?$_GET['mode']:'';
|
|
|
|
$valid_modes = array(
|
|
'players',
|
|
'clans',
|
|
'weapons',
|
|
'roles',
|
|
'rolesinfo',
|
|
'maps',
|
|
'actions',
|
|
'claninfo',
|
|
'playerinfo',
|
|
'weaponinfo',
|
|
'mapinfo',
|
|
'actioninfo',
|
|
'playerhistory',
|
|
'playersessions',
|
|
'playerawards',
|
|
'search',
|
|
'admin',
|
|
'help',
|
|
'bans',
|
|
'servers',
|
|
'chathistory',
|
|
'ranks',
|
|
'rankinfo',
|
|
'ribbons',
|
|
'ribboninfo',
|
|
'chat',
|
|
'globalawards',
|
|
'awards',
|
|
'dailyawardinfo',
|
|
'countryclans',
|
|
'countryclansinfo',
|
|
'teamspeak',
|
|
'ventrilo',
|
|
'updater',
|
|
'profile'
|
|
);
|
|
|
|
if (file_exists('./updater') && $mode != 'updater')
|
|
{
|
|
pageHeader(array('Update Notice'), array('Update Notice' => ''));
|
|
echo "<div class=\"warning\">\n" .
|
|
"<span class=\"warning-heading\"><img src=\"".IMAGE_PATH."/warning.gif\" alt=\"Warning\"> Warning:</span><br />\n" .
|
|
"<span class=\"warning-text\">The updater folder was detected in your web directory.<br />
|
|
To perform a Database Update, please go to <strong><a href=\"{$g_options['scripturl']}?mode=updater\">HLX:CE Database Updater</a></strong> to perform the database update.<br /><br />
|
|
<strong>If you have already performed the database update, <strong>you must delete the \"updater\" folder from your web folder.</span>\n</div>";
|
|
pageFooter();
|
|
die();
|
|
}
|
|
|
|
if ( !in_array($mode, $valid_modes) )
|
|
{
|
|
$mode = 'contents';
|
|
}
|
|
|
|
if ( file_exists(PAGE_PATH . "/$mode.php") )
|
|
{
|
|
@include(PAGE_PATH . "/$mode.php");
|
|
pageFooter();
|
|
}
|
|
else
|
|
{
|
|
header('HTTP/1.1 404 File Not Found', false, 404);
|
|
error('Unable to find ' . PAGE_PATH . "/$mode.php");
|
|
pageFooter();
|
|
}
|
|
|
|
?>
|