Timeout til en CSserverliste
Jeg har lavet en såkaldt counter-strike serverliste.. men hvis den ene server ikke svarer, kører scriptet ikke videre, og derfor vil serverlisten ikke virke, hvis en server er ude af drift! Der er vidst nok timeout på, men der virker ikke helt. Jeg vil derfor ha lavet serverlisten sådan at hvis en server ikke svarer kører den bare videre til næste server. så serverlisten virker selvom en server er ude af dirft.Mit script ser således ud:
<? require("counterstrike.php"); ?>
<html>
<?
#funtionen til at frembringe antal spillere og servre ialt!!!
function ialt() {
#oplysninger til databasen
$server = "localhost";
$bruger = "usse";
$kode = "mit kodeord";
$database = "csserver";
$tabel = "serverlisten";
$name = $navn;
#Opretter forbindelse til databasen:
mysql_connect("$server", "$bruger", "$kode");
mysql_select_db("$database");
#Henter tabelen ud fra databasen, for en bestemt CSSERVER:
$resultat = mysql_query("select * from $tabel") or die(mysql_error());
#Henter værdierne fra tabel af forspørgsel:
while ($row = mysql_fetch_array($resultat)){
$serveradr = $row[ip];
$serverport= $row[port];
$csinfo=new CounterStrike;
$status=$csinfo->getServerInfo($serveradr,$serverport,1000);
if ($status) {
$ialt_spillere = $ialt_spillere+$csinfo->m_servervars["currentplayers"];
$ialt_servere = $ialt_servere+$status;
}
}
echo "<tr><td><font color=#000000>";
echo "information:</font> der er ialt " . $ialt_spillere . " spillere";
echo " ";
echo "på " . $ialt_servere . " servere";
echo "</td></tr>";
}
?>
<table border="0" id="membertabel" align="center" cellpadding="0" cellspacing="0">
<tr><td colspan=4><font color="DarkRed">*Serverlisten:</font> her er vores liste over de bedste FFA CSservere..</td></tr>
<tr><td colspan=4><? ialt(); ?></td></tr>
<tr><td id="memberhead">servernavn:</td><td id="memberhead">map:</td><td id="memberhead">spillere:</td><td id="memberhead">os:</td></tr>
<?php
#oplysninger til databasen
$server = "localhost";
$bruger = "usse";
$kode = "mit kodeord";
$database = "csserver";
$tabel = "serverlisten";
$name = $navn;
#Opretter forbindelse til databasen:
mysql_connect("$server", "$bruger", "$kode");
mysql_select_db("$database");
#Henter tabelen ud fra databasen, for en bestemt CSSERVER:
$resultat = mysql_query("select * from $tabel") or die(mysql_error());
#Henter værdierne fra tabel af forspørgsel:
while ($row = mysql_fetch_array($resultat)){
$serveradr = $row[ip];
$serverport= $row[port];
$csinfo=new CounterStrike;
$status=$csinfo->getServerInfo($serveradr,$serverport,1000);
if ($status) {
echo "<tr>";
echo "<td> " . $csinfo->m_servervars["servername"] . " </td>";
echo "<td> " . $csinfo->m_servervars["mapname"] . " </td>";
echo "<td> " . $csinfo->m_servervars["currentplayers"] . "/". $csinfo->m_servervars["maxplayers"] . " </td>";
echo "<td><img src=/zerocontrol/images/$row[os].gif border=0></img></td>";
$ialt_spillere = $ialt_spillere+$csinfo->m_servervars["currentplayers"];
$ialt_servere = $ialt_servere+$status;
}
echo "</tr>";
}
mysql_close();
?>
</table>
</html>
