Guten Tag,
ich habe ein Script gemacht, was mir denn Status mehrerer Server anzeigt.
Die Daten also die IP´s und die Port´s lese ich aus einer DB aus.
Das funktioniert auch alles so weit, nur zeigt der mir nur ein Server richtig an, denn anderen lässt er als Offline da stehen, schalte ich sagen wir ein Server offline, dann zeigt er mir denn anderen Server richtig an.
Voran kann das liegen?
Hier mal der code:
Ich hoffe es kann mir wehr helfen.
ich habe ein Script gemacht, was mir denn Status mehrerer Server anzeigt.
Die Daten also die IP´s und die Port´s lese ich aus einer DB aus.
Das funktioniert auch alles so weit, nur zeigt der mir nur ein Server richtig an, denn anderen lässt er als Offline da stehen, schalte ich sagen wir ein Server offline, dann zeigt er mir denn anderen Server richtig an.
Voran kann das liegen?
Hier mal der code:
PHP:
<html>
<body>
<table border="0" colspan="2" cellspacing="0" cellpadding="5" width="100%">
<tr>
<td width="20%" align="center"><font style="color:#E50000"></font></td>
<td width="20%" align="center"><font style="color:#E50000"></font></td>
<td width="20%" align="center"><font style="color:#E50000"></font></td>
<td width="20%" align="center"><font style="color:#E50000"></font></td>
</tr>
<?PHP
$dbhost="localhost";
$dbuser="******";
$dbpass="*****";
$dbname="d00872ad";
mysql_connect($dbhost,$dbuser,$dbpass);
mysql_select_db($dbname);
$query = "SELECT * FROM serverliste";
$result = mysql_query($query);
while ($line = mysql_fetch_array($result)) {
$list=array();
$server = "$line[ip]";
$infoport = "$line[infoport]";
$name = "$line[name]";
$serverbefehl="info";
$ip="udp://".$server."";
$port = $infoport;
$connect=@fsockopen($ip, $port, $errno, $errstr, 30);
if ($connect) {
socket_set_timeout ($connect, 1, 000000);
$send = "\\$serverbefehl\\";
fputs($connect, $send);
fwrite ($connect, $send);
$output = fread ($connect, 1);
if (! empty ($output)) {
do {
$status_pre = socket_get_status ($connect);
$out = fread ($connect, 1);
if ($out=="\\") { if(empty ($b)) $b=1;
$list[$b++]=$output;
$output="";
} else {
$output = $output . $out;
}
$status_post = socket_get_status ($connect);
} while ($status_pre['unread_bytes'] != $status_post['unread_bytes']);
};
fclose($connect);
### zuordnen der Variablen ########################################################
$hostname = "";
$mapname = "";
$numplayers = "";
$maxplayers = "";
for($i=0;$i<count($list);$i++) {
if ($list[$i] == "\gamename") $gamename = $list[$i+1];
if ($list[$i] == "gamever") $gamever = $list[$i+1];
if ($list[$i] == "hostname") $hostname = $list[$i+1];
if ($list[$i] == "hostport") $hostport = $list[$i+1];
if ($list[$i] == "mapname") $mapname = $list[$i+1];
$mapname = str_replace(".mix", "", $mapname);
if ($list[$i] == "gametype") $gametype = $list[$i+1];
if ($list[$i] == "numplayers") $numplayers = $list[$i+1];
if ($list[$i] == "maxplayers") $maxplayers = $list[$i+1];
}
if (!empty($hostname)){
$hostname = "<span style='color: #FFFFFF; font-size: 7pt; font-weight: bold;'>".$hostname."</span>";
$map = "<span style='color: #FFFFFF; font-size: 7pt; font-weight: bold;'>".$mapname."</span>";
$Player = "<p align='center'>
<span style='color: #FFFFFF; font-size: 8pt; font-weight: bold;'> Spieler: </span>
<span style='color: #FFBB00; font-size: 8pt; font-weight: bold;'> ".$numplayers." </span>
<span style='color: #FFFFFF; font-size: 8pt; font-weight: bold;'> von </span>
<span style='color: #FFBB00; font-size: 8pt; font-weight: bold;'> ".$maxplayers." </span>";
$status = "<span style='color: #FFFFFF; font-size: 7pt; font-weight: bold;'>Online</span>";
} else {
$hostname = "<span style='color: #FFFFFF; font-size: 12pt; font-weight: bold;'>".$name."</span>";
$Player = "N/A";
$map = "<span style='color: #FFFFFF; font-size: 7pt; font-weight: bold;'>N/A</span>";
$status = "<span style='color: #FFFFFF; font-size: 7pt; font-weight: bold;'>Offline</span>";
}
?>
<tr>
<td width="20%" align="center"><font style="color:#FFFFFF"><? echo $hostname; ?></font></td>
<td width="20%" align="center"><font style="color:#FFFFFF"><? echo $Player; ?></font></td>
<td width="20%" align="center"><font style="color:#FFFFFF"><? echo $map; ?></font></td>
<td width="20%" align="center"><font style="color:#FFFFFF"><? echo $status; ?></font></td>
</tr>
<?PHP
}
}
mysql_free_result($result);
mysql_close();
?>
</table>
</body>
</html>
Ich hoffe es kann mir wehr helfen.