* add listing of recent servers - thanks to cygal

This commit is contained in:
mnaumann 2011-01-10 20:09:19 +00:00
parent 6f964d0330
commit ed0c118fb7
4 changed files with 46 additions and 0 deletions

View File

@ -83,6 +83,7 @@
'externalServerPort=\''. mysql_real_escape_string( $service_port ) . '\', ' .
'lasttime=' . 'now()' . ' ' .
'where ip=\'' . mysql_real_escape_string( $remote_ip ) . '\' && externalServerPort=\'' . mysql_real_escape_string( $service_port ) . '\';' );
updateServer($remote_ip, $service_port, $serverTitle, $connectedClients, $networkSlots);
echo 'OK';
}
else // this game server is not listed in the database, yet
@ -179,6 +180,7 @@
'externalServerPort=\''. mysql_real_escape_string( $service_port ) . '\'
;' );
echo 'OK';
addLatestServer($remote_ip, $service_port, $serverTitle, $connectedClients, $networkSlots);
}
}
db_disconnect( DB_LINK );

View File

@ -10,4 +10,6 @@
// http://php.net/manual/function.mysql-pconnect.php
// http://php.net/manual/features.persistent-connections.php
define( 'MYSQL_LINK_PERSIST', false );
// How many recently seen servers to store
define( 'MAX_RECENT_SERVERS', 5 );
?>

View File

@ -57,4 +57,30 @@
return mysql_db_query( $mysql_database, 'DELETE FROM glestserver WHERE lasttime<DATE_add(NOW(), INTERVAL -1 minute);' );
//return mysql_db_query( $mysql_database, 'UPDATE glestserver SET status=\'???\' WHERE lasttime<DATE_add(NOW(), INTERVAL -2 minute);' );
}
function addLatestServer($remote_ip, $service_port, $serverTitle, $connectedClients, $networkSlots )
{
// insert the new server
$server = "$remote_ip:$service_port";
$players = "$connectedClients/$networkSlots";
mysql_db_query( MYSQL_DATABASE, "INSERT INTO recent_servers (name, server, players) VALUES('$serverTitle', '$server', '$players')");
// make sure there are not too much servers
$count_query = mysql_fetch_assoc(mysql_db_query( MYSQL_DATABASE, "SELECT COUNT(*) as count FROM recent_servers"));
$count = (int) $count_query['count'];
$over = $count - MAX_RECENT_SERVERS;
mysql_db_query( MYSQL_DATABASE, "DELETE FROM recent_servers ORDER BY id LIMIT $over");
}
function updateServer($remote_ip, $service_port, $serverTitle, $connectedClients, $networkSlots ) {
// find the id of the server to update
$server = "$remote_ip:$service_port";
$players = "$connectedClients/$networkSlots";
$find_query = mysql_fetch_assoc(mysql_db_query( MYSQL_DATABASE, "SELECT id FROM recent_servers WHERE server ='$server' ORDER BY id desc LIMIT 1"));
$id = (int) $find_query['id'];
// update it.
mysql_db_query( MYSQL_DATABASE, "UPDATE recent_servers SET name='$serverTitle', players='$players' WHERE id=$id LIMIT 1");
}
?>

View File

@ -0,0 +1,16 @@
<?php
define( 'INCLUSION_PERMITTED', true );
require_once( 'config.php' );
require_once( 'functions.php' );
$link = db_connect();
mysql_select_db(MYSQL_DATABASE);
$recents_query = mysql_query('SELECT name, players FROM recent_servers' );
echo "<table>";
while($recent_server = mysql_fetch_assoc($recents_query)) {
echo "<tr><td>{$recent_server['name']}</td><td>{$recent_server['players']}</td></tr>";
}
echo "</table>";
db_disconnect($link);
?>