PHP Code:
<?
/*
* Copyright (c) 2002, Tomas Stucinskas a.k.a Baboon
* All rights reserved.
*
* Redistribution and use with or without modification, are
* permitted provided that the following conditions are met:
*
* Redistributions must retain the above copyright notice.
* File readme.htm must not be removed from the package.
*
* Module name : httpupload.php
* Author : Tomas Stucinskas a.k.a Baboon
* E-mail : [email]baboon@ai-hq.com[/email]
*/
require "getvars.php";
require "config.php"; // staat alleen db info in
require "gametypes.php"; // staan alleen wat arrays in die gevuld worden
require "weapons.php"; // staan alleen wat arrays in die gevuld worden
function cmp($a, $b) {
if($a["score"] == $b["score"]) return ($a["kills"] > $b["kills"]) ? -1 : 1;
return ($a["score"] > $b["score"]) ? -1 : 1;
}
$tables = array("games", "imported", "modules", "ranks", "scores", "servers", "squads", "stats");
foreach($tables as $name) {
${$name."_table"} = $tablepre."_".$name;
}
mysql_pconnect($dbhost, $dbusername, $dbuserpw) or die(mysql_error());
mysql_select_db($dbname) or die(mysql_error());
if(isset($file) && isset($idcode)) {
$file = base64_decode($file);
$idcode = base64_decode($idcode);
$query = mysql_query("SELECT * FROM $servers_table WHERE idcode='$idcode'") or die(mysql_error());
if(mysql_num_rows($query) == 0) {
echo "i_n_v_a_l_i_d_i_d_c_o_d_e";
exit;
}
/*>>>>>> Taken from functions.php ImportStats(); <<<<<<<*/
$statslines=explode("\n", $file);
$numlines=count($statslines);
$status = "blank";
for($i = 0; $i < $numlines; $i++) {
$linedata = explode("__&__", $statslines[$i]);
$tag = trim($linedata[0]);
if($tag == "GameStart") $status = "game_start_line";
else if($tag == "GameEnd") $status = "game_end_line";
else if($tag == "Player") $status = "player_line";
else if($tag == "LogStart") $status = "log_start_line";
else if($tag == "LogEnd") $status = "log_end_line";
else if($tag == "Message") $status = "message_line";
else $status = "blank";
if($status == "blank") {}
if($status == "log_start_line") {}
if($status == "message_line") {}
if($status == "log_end_line") {}
if($status == "game_start_line") {
$linedata = explode("__&__", $statslines[$i]);
$gameversion = $linedata[1];
$serveridcode = $linedata[2];
$servername = $linedata[3];
$mapname = $linedata[4];
$dedicated = $linedata[5];
$gametype = $linedata[6];
$winner = $linedata[7];
$datetime = $linedata[8];
$datetime = trim($datetime);
$gameversion = explode(" ", $gameversion);
$gameversion = $gameversion[0];
$playersnum = 0;
$filerejected = 0;
$players = Array();
$datecheckquery = mysql_query("SELECT * FROM $imported_table WHERE date='$datetime'") or die(mysql_error());
$serveridcheckquery = mysql_query("SELECT * FROM $servers_table WHERE idcode='$serveridcode'") or die(mysql_error());
if(mysql_num_rows($datecheckquery) >= 1 || mysql_num_rows($serveridcheckquery) == 0) {
$filerejected = 1;
} else {
$serverrow = mysql_fetch_array($serveridcheckquery);
$serverid = $serverrow[id];
$mapname = str_replace("'", "", $mapname);
$mapname = str_replace("#", "", $mapname);
$mapname = str_replace("??", "", $mapname);
$mapname = str_replace("\\", "", $mapname);
$servername = str_replace("'", "", $servername);
$servername = str_replace("#", "", $servername);
$servername = str_replace("\\", "", $servername);
$mapname = trim($mapname);
$servername = trim($servername);
$servername = ereg_replace("~[0-9]", "", $servername);
$mapname = ereg_replace("~[0-9]", "", $mapname);
$gametype = $gt_map[$gameversion][$gametype];
if($gametype == 0) {$gt = "coop";}
if($gametype == 1) {$gt = "dm";}
if($gametype == 2) {$gt = "tdm";}
if($gametype == 3) {$gt = "koth";}
if($gametype == 4) {$gt = "tkoth";}
if($gametype == 5) {$gt = "ctf";}
if($gametype == 6) {$gt = "sd";}
if($gametype == 7) {$gt = "ad";}
if($gametype == 8) {$gt = "fb";}
if($winner == 0) {$who_won = "draw";}
if($winner == 1) {$who_won = "blue_won";}
if($winner == 2) {$who_won = "red_won";}
if($winner == 3) {$who_won = "yellow_won";}
if($winner == 4) {$who_won = "violet_won";}
$gt_games = $gt."_games";
$avg_gt_rank = "avg_".$gt."_rank";
$total_gt_score = "total_".$gt."_score";
$top_gt_score = "top_".$gt."_score";
$query = mysql_query("INSERT INTO $imported_table VALUES ('$datetime')") or die(mysql_error());
$query = mysql_query("INSERT INTO $games_table VALUES ('', '$serverid', '$datetime', '$servername', '$mapname', '$winner', '$gametype', '$gameversion')") or die(mysql_error());
$query = mysql_query("UPDATE $servers_table SET $gt_games=$gt_games+1 WHERE idcode='$serveridcode'") or die(mysql_error());
if($gt != "dm" && $gt != "koth") {$query = mysql_query("UPDATE $servers_table SET $who_won=$who_won+1 WHERE idcode='$serveridcode'") or die(mysql_error());}
$gameidquery = mysql_query("SELECT * FROM $games_table WHERE date='$datetime'") or die(mysql_error());
$gamerow = mysql_fetch_array($gameidquery);
$gameid = $gamerow[id];
}
}
if($status == "player_line") {
if($filerejected == 0) {
$linedata = explode("__&__", $statslines[$i]);
$playerdata = explode("_", $linedata[1]);
$name = $linedata[2];
$name = str_replace("'", "", $name);
$name = str_replace("#", "", $name);
$name = str_replace("\\", "", $name);
$name = trim($name);
if($name != "") {
$players[$playersnum][score] = $playerdata[0];
$players[$playersnum][kills] = $playerdata[1];
$players[$playersnum][deaths] = $playerdata[2];
$players[$playersnum][headshots] = $playerdata[3];
$players[$playersnum][knifings] = $playerdata[4];
$players[$playersnum][medicsaves] = $playerdata[5];
$players[$playersnum][flagspicked] = $playerdata[6];
$players[$playersnum][flagssaved] = $playerdata[7];
$players[$playersnum][murders] = $playerdata[8];
$players[$playersnum][suicides] = $playerdata[9];
$players[$playersnum][team] = $playerdata[10];
$players[$playersnum][shots] = $playerdata[11];
$players[$playersnum][weapon] = $playerdata[12];
$players[$playersnum][name] = $name;
$playersnum++;
}
}
}
if($status == "game_end_line") {
usort($players, "cmp");
for($j = 0; $j < $playersnum; $j++) {
$score = $players[$j][score];
$kills = $players[$j][kills];
$deaths = $players[$j][deaths];
$headshots = $players[$j][headshots];
$knifings = $players[$j][knifings];
$medicsaves = $players[$j][medicsaves];
$flagspicked = $players[$j][flagspicked];
$flagssaved = $players[$j][flagssaved];
$murders = $players[$j][murders];
$suicides = $players[$j][suicides];
$team = $players[$j][team];
$shots = $players[$j][shots];
$weapon = $players[$j][weapon];
$name = $players[$j][name];
$rank = $j+1;
$weaponkills = $kills - $knifings;
$query = mysql_query("SELECT * FROM $stats_table WHERE player_name='$name'") or die(mysql_error());
if($playerrow = mysql_fetch_array($query)) {
$pid = $playerrow[id];
} else {
$query = mysql_query("INSERT INTO $stats_table VALUES ('', '$name', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '-1')") or die(mysql_error());
$query = mysql_query("SELECT * FROM $stats_table WHERE player_name='$name'") or die(mysql_error());
$playerrow = mysql_fetch_array($query);
$pid = $playerrow[id];
}
if($gt == "ctf") {$query = mysql_query("UPDATE $stats_table SET total_ctf_flags_saved=total_ctf_flags_saved+'$flagssaved', total_ctf_flags_picked=total_ctf_flags_picked+'$flagspicked' WHERE id='$pid'") or die(mysql_error());}
if($gt == "fb") {$query = mysql_query("UPDATE $stats_table SET total_fb_flags_picked=total_fb_flags_picked+'$flagspicked' WHERE id='$pid'") or die(mysql_error());}
if($team == 1 && $gt != "dm" && $gt != "koth") {$query = mysql_query("UPDATE $stats_table SET team_blue=team_blue+1 WHERE id='$pid'") or die(mysql_error());}
if($team == 2 && $gt != "dm" && $gt != "koth") {$query = mysql_query("UPDATE $stats_table SET team_red=team_red+1 WHERE id='$pid'") or die(mysql_error());}
if($team == 3 && $gt != "dm" && $gt != "koth") {$query = mysql_query("UPDATE $stats_table SET team_yellow=team_yellow+1 WHERE id='$pid'") or die(mysql_error());}
if($team == 4 && $gt != "dm" && $gt != "koth") {$query = mysql_query("UPDATE $stats_table SET team_violet=team_violet+1 WHERE id='$pid'") or die(mysql_error());}
if($team == $winner && $gt != "dm" && $gt != "koth") {$query = mysql_query("UPDATE $stats_table SET team_games_won=team_games_won+1 WHERE id='$pid'") or die(mysql_error());}
$weapon = $wpn_map[$gameversion][$weapon];
$weapontype = $wpn_type[$weapon];
if(!isset($weapontype) || $weapontype == "") $weapontype = "none";
$wepaontotalkills = "total_".$weapontype."_kills";
$wepaontotaluses = "total_".$weapontype."_uses";
if($weapontype != "none") {
$query = mysql_query("UPDATE $stats_table SET $wepaontotalkills=$wepaontotalkills+$weaponkills,
$wepaontotaluses=$wepaontotaluses+$shots
WHERE id='$pid'") or die(mysql_error());
}
$query = mysql_query("UPDATE $stats_table SET total_games=total_games+1,
$gt_games=$gt_games+1,
$avg_gt_rank=($avg_gt_rank*($gt_games-1)+($rank))/($gt_games),
last_played=IF(last_played<'$datetime','$datetime',last_played),
total_kills=total_kills+$kills,
total_deaths=total_deaths+$deaths,
total_knives=total_knives+$knifings,
total_headshots=total_headshots+$headshots,
total_suicides=total_suicides+$suicides,
total_medsaves=total_medsaves+$medicsaves,
total_murders=total_murders+$murders,
top_knives=IF(top_knives<$knifings,$knifings,top_knives),
top_kd_ratio=IF(top_kd_ratio<IF($kills=0,1,$kills)/IF($deaths=0,1,$deaths),IF($kills=0,1,$kills)/IF($deaths=0,1,$deaths),top_kd_ratio),
top_medsaves=IF(top_medsaves<$medicsaves,$medicsaves,top_medsaves),
top_kd=IF(top_kd<($kills-$deaths),$kills-$deaths,top_kd),
$total_gt_score=$total_gt_score+$score,
$top_gt_score=IF($top_gt_score<$score,$score,$top_gt_score),
avg_kd_ratio=(avg_kd_ratio*(total_games-1)+IF($kills=0,1,$kills)/IF($deaths=0,1,$deaths))/(total_games)
WHERE id='$pid'") or die(mysql_error());
$query = mysql_query("INSERT INTO $scores_table VALUES ('', '$gameid', '$pid', '$rank', '$score', '$kills', '$deaths', '$headshots', '$knifings', '$team', '$weapon')") or die(mysql_error());
}
}
}
/*>>>>>> End <<<<<<<*/
echo "u_p_l_o_a_d_s_u_c_c_e_s_s";
} else {
echo "n_o_f_i_l_e_u_p_l_o_a_d_e_d";
}
?>
status.php
PHP Code:
<?
/*
* Copyright (c) 2002, Tomas Stucinskas a.k.a Baboon
* All rights reserved.
*
* Redistribution and use with or without modification, are
* permitted provided that the following conditions are met:
*
* Redistributions must retain the above copyright notice.
* File readme.htm must not be removed from the package.
*
* Module name : status.php
* Author : Tomas Stucinskas a.k.a Baboon
* E-mail : [email]baboon@ai-hq.com[/email]
*/
require "getvars.php";
require "config.php";
$tables = array("games", "imported", "modules", "ranks", "scores", "servers", "squads", "stats");
foreach($tables as $name) {
${$name."_table"} = $tablepre."_".$name;
}
mysql_pconnect($dbhost, $dbusername, $dbuserpw) or die(mysql_error());
mysql_select_db($dbname) or die(mysql_error());
if(isset($idcode) && isset($maxplayers) && isset($numplayers) && isset($mapname) && isset($servername) && isset($dedicated) && isset($gametype) && isset($game)) {
$game = base64_decode($game);
$servername = base64_decode($servername);
$mapname = base64_decode($mapname);
$idcode = base64_decode($idcode);
$mapname = str_replace("'", "", $mapname);
$mapname = str_replace("#", "", $mapname);
$mapname = str_replace("??", "", $mapname);
$mapname = str_replace("\\", "", $mapname);
$mapname = ereg_replace("~[0-9]", "", $mapname);
$servername = str_replace("'", "", $servername);
$servername = str_replace("#", "", $servername);
$servername = str_replace("\\", "", $servername);
$servername = ereg_replace("~[0-9]", "", $servername);
$query = mysql_query("SELECT * FROM $servers_table WHERE idcode='$idcode'") or die(mysql_error());
if(mysql_num_rows($query) == 0) {
echo "i_n_v_a_l_i_d_i_d_c_o_d_e";
exit;
}
if(getenv(HTTP_CLIENT_IP)) {
$ip = getenv(HTTP_CLIENT_IP);
} elseif(getenv(HTTP_X_FORWARDED_FOR)) {
$ip = getenv(HTTP_X_FORWARDED_FOR);
} else {
$ip = getenv(REMOTE_ADDR);
}
$thetime = time();
mysql_query("UPDATE $servers_table SET ip='$ip', maxplayers='$maxplayers', numplayers='$numplayers', mapname='$mapname', servername='$servername', dedicated='$dedicated', gametype='$gametype', last_update='$thetime', game='$game' WHERE idcode='$idcode'") or die(mysql_error());
echo "s_t_a_t_u_s_u_p_d_a_t_e_d";
} else {
echo "d_a_t_a_m_i_s_s_i_n_g";
}
?>
in suphp logs kan ik dus niets bijzonders vinden