Normalerweise dürfte das script gar nicht mehr funktionieren!
Die Adressen ändern sich dauernd.
Ich werd gleich mal ein neues Script posten ....
PHP-Code:
<?php
//World, example:
//World 10 = ds10
//World 2 = ds2
$world = "ds10";
//for tribalwars.net, this must be http://www.tribalwars.net/backend/get_servers.php
$file = "http://www.die-staemme.de/backend/get_servers.php";
//get the server address
function get_serverdomain($servername, $file) {
$file = file_get_contents($file);
$servers = unserialize($file);
$domain = $servers[$servername];
if (empty($domain)) {
return false;
}
else
{
return $domain;
}
}
//function by Stev47
function PostToHost($host, $path, $referer, $data_to_send) {
$fp = fsockopen($host, 80);
fputs($fp, "POST $path HTTP/1.1\r\n");
fputs($fp, "Host: $host\r\n");
fputs($fp, "Referer: $referer\r\n");
fputs($fp, "Content-type: application/x-www-form-urlencoded\r\n");
fputs($fp, "Content-length: ". strlen($data_to_send) ."\r\n");
fputs($fp, "Connection: close\r\n\r\n");
fputs($fp, $data_to_send);
while(!feof($fp)) {
$res .= fgets($fp, 128);
}
fclose($fp);
return $res;
}
$host = get_serverdomain($world, $file);
//Script by Stev47
$path[0] = "/guest.php?screen=ranking&mode=player&search";
$path[1] = "/guest.php?screen=ranking&mode=ally&search";
$referer[0] = $host."/guest.php?screen=ranking&mode=player";
$referer[1] = $host."/guest.php?screen=ranking&mode=ally";
if($_SERVER['REQUEST_METHOD'] == 'POST'){
$org = stripslashes($_POST['textarea']);
preg_match('/^(Dorf )(.+)(\r\n)/m', $org, $found);
if (!preg_match('/^('.preg_quote($found[2],'/').')(\r\n)/m', $org)) die ("Fehler");
$village_name = $found[2];
preg_match('/Koordinaten:\t([0-9]+\|[0-9]+)\r/', $org, $found);
$village_koords = $found[1];
preg_match('/Punkte:\t([0-9\.]+)\r/', $org, $found);
$village_points = $found[1];
preg_match('/Spieler:\t(.*)\r/', $org, $found);
$player_name = $found[1];
if ($player_name){
$utf8_player_name = iconv("ISO-8859-1", "UTF-8", $player_name);
$post_data = "name=" . $utf8_player_name;
$post_response = PostToHost(substr($host,7), $path[0], $referer[0], $post_data);
preg_match('='.preg_quote($utf8_player_name,'/').'.*<a[^>]*>(.*)</a[^>]*>.*<td>(.+)</td>=sU', $post_response, $found);
$utf8_ally_tag = $found[1];
$ally_tag = iconv("UTF-8", "ISO-8859-1", $utf8_ally_tag);
$player_points = strip_tags($found[2]);
}
if ($ally_tag){
$post_data = "name=" . $utf8_ally_tag;
$post_response = PostToHost(substr($host,7), $path[1], $referer[1], $post_data);
preg_match('='.preg_quote($utf8_ally_tag,'/').'(?:.*td.*){2}<td>(.+)</td>.*<td>(.+)</td>=sU', $post_response, $found);
$ally_points = strip_tags($found[1]);
$ally_member = $found[2];
}
if ($village_name && $village_koords && $village_points){
$bbcode = "[u][size=13][village](".$village_koords.")[/village][/size][/u]\r\n\r\n[b][i][u]Dorfdetails:[/u][/i][/b]\r\n\r\nDorf: [village](".$village_koords.")[/village]\r\nPunkte: [b]". $village_points."[/b]\r\n\r\n[b][i][u]Spielerdetails:[/u][/i][/b]\r\n\r\n";
if ($player_name){
$bbcode .= "Spieler: [player]" . $player_name . "[/player]\r\n";
if ($player_points) $bbcode .= "Punkte: [b]". $player_points."[/b]";
if ($ally_tag){
$bbcode .= "\r\n\r\n[b][i][u]Stammesdetails:[/u][/i][/b]\r\n\r\nStamm: [ally]" . $ally_tag . "[/ally]\r\nPunkte: [b]".$ally_points."[/b]\r\nMitglieder: [b]" . $ally_member . "[/b]\r\n";
}
}else{
$bbcode .= '[color=grey][size=10][b][i]VERLASSEN[/i][/b][/size][/color]';
}
$title = $village_name . ' (' . $village_koords . ')';
}
}
?>
<form name="form1" method="post" action="<?=$PHP_SELF?>">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<? if($_SERVER['REQUEST_METHOD'] == 'POST'){ ?>
<tr>
<td><input type="text" style="width:100%" value="<?php echo $title; ?>"><hr /></td>
</tr>
<? } ?>
<tr>
<td><textarea name="textarea" style="height:300px; width:100%"><?php echo $bbcode; ?></textarea></td>
</tr>
<tr>
<td><input type="submit" name="Submit" value="Dorf-Reservierung erstellen!"></td>
</tr>
</table>
</form>
Dieses Script habe ich dahingehend ergänzt, das es die Server Domain direkt von DS holt.
http://www.die-staemme.de/backend/get_servers.php wurde extra dafür erstellt, beinhaltet alle Server.