Ich hab hier ein Script das auf einer Homepage ein Fenster anzeigen soll wo ein Teamspeakserver abgebildet ist mit seinen Räumen aber bei mir gibts da eine Fehlermeldung. Vielleicht kann mir da einer Weiterhelfen...
Die Dateistruktur ist folgende:
teamspeak/TS-Viewer_small-config.php
teamspeak/navigation/navbox.TS-Viewer_small.php
Und hier die beiden Scripte von den Beiden Dateien und die Fehlermeldung die sich bei mir ergiebt...
Script von TS-Viewer_small-config.php
PHP
<?php
// TS-Viewer_small-config.php
class tss2infosmall {
// (c) 2003 by Christian Müller
// non-commercial use approved, commercial users please contact me at [email]mueller@fmi.uni-passau.de[/email]
// i give no guarantees whatsoever about the correct functioning of this script
// use at your own risk
// date: 20/06/03, 23:28
//
// umgecodet und gestyled von Dooki
// Bei Problemem mit dem Script bitte bei Dooki melden.. [email]dooki@php-gfx.net[/email]
//
/*#################################*\
##\¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯/##
###> created by php-gfx.net <###
##/_______________________________\##
\*#################################*/
//
//-------------------------------------------------------------------------------------------------
// **** Einstellungen ****
var $sitetitle = "TeamSpeak"; // SeitenTitle der neben den Kopfhörern steht
var $serverAddress = "213.221.110.200"; // Hier die TeamSpeak IP Adresse eintragen !!wichtig!! (Beispiel: 192.168.7.1)
var $serverQueryPort = "51234"; // TeamSpeak QueryPort.. Schau in die server.ini von TeamSpeak (Standard 51234)
var $serverUDPPort = "8767"; // UDP Port für Teamspeak der auch hinter der IP Adresse genutzt wird (Standard 8767)
var $serverPasswort = ""; // Serverpasswort das bei Serversettings eingestellt wird (wenn kein Passwort erteilt, dann leer lassen)
// (Passwort wird meistens bei Clanservern gebraucht)
var $connectionLink = "1"; // Abfrage ob ein Link zum connecten sein soll oder nicht! 0 = NEIN, 1 = JA
// **** Einstellungen ****
//-------------------------------------------------------------------------------------------------
//
// Das entfernen des © (Copyright) ist untersagt.
// Die verlinkung bleibt ebenfalls bestehen!
//
/*##########################################################################*\
##\¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯/##
###\ Der hier vorgestellte Download, darf ausschliesslich nur von /###
####\ [url]www.php-gfx.net[/url] runtergeladen werden! Jegliche Vervielfältigung /####
####/ oder Weiterverbreitung in jedem Medium als Ganzes oder in Teilen \####
###/ bedarf der schriftlichen Zustimmung von php-gfx.net. \###
##/________________________________________________________________________\##
\*##########################################################################*/
//
// Abweichungen vom Orginalcode stammen von Dooki und wurden konmmentiert
//
/* Ab hier darf >>> KEIN <<< Text mehr geändert werden */
/****************************************************************************
Der folgende Code ist der Orginalcode von Christian Müller
(sämtliche Kommentare wurden von mir, Dooki, rausgelöscht)
Eine Verbreitung des Codes bedarf einer schriftlichen Zusage des Coders
****************************************************************************/
//-------------------------------------------------------------------------------------------------
//---> Orginalcode
var $socket;
var $serverStatus = "offline";
var $playerList = array();
var $channelList = array();
function getSocket($host, $port, $errno, $errstr, $timeout) {
unset($socket);
$attempts = 1;
while($attempts <= 1 and !$socket) {
$attempts++;
@$socket = fsockopen($host, $port, $errno, $errstr, $timeout);
$this->errno = $errno;
$this->errstr = $errstr;
if($socket and fread($socket, 4) == "[TS]") {
fgets($socket, 128);
return $socket;
}
}
return false;
}
function sendQuery($socket, $query) {
fputs($socket, $query."\n");
}
function getOK($socket) {
$result = fread($socket, 2);
fgets($socket, 128);
return($result == "OK");
}
function closeSocket($socket) {
fputs($socket, "quit");
fclose($socket);
}
function getNext($evalString) {
$pos = strpos($evalString, "\t");
if(is_integer($pos)) {
return substr($evalString, 0, $pos);
} else {
return $evalString;
}
}
function chopNext($evalString) {
$pos = strpos($evalString, "\t");
if(is_integer($pos)) {
return substr($evalString, $pos + 1);
} else {
return "";
}
}
function stripQuotes($evalString) {
if(strpos($evalString, '"') == 0) $evalString = substr($evalString, 1, strlen($evalString) - 1);
if(strrpos($evalString, '"') == strlen($evalString) - 1) $evalString = substr($evalString, 0, strlen($evalString) - 1);
return $evalString;
}
function getVerboseCodec($codec) {
if($codec == 0) {
$codec = "CELP 5.1 Kbit";
} elseif($codec == 1) {
$codec = "CELP 6.3 Kbit";
} elseif($codec == 2) {
$codec = "GSM 14.8 Kbit";
} elseif($codec == 3) {
$codec = "GSM 16.4 Kbit";
} elseif($codec == 4) {
$codec = "CELP Windows 5.2 Kbit";
} elseif($codec == 5) {
$codec = "Speex 3.4 Kbit";
} elseif($codec == 6) {
$codec = "Speex 5.2 Kbit";
} elseif($codec == 7) {
$codec = "Speex 7.2 Kbit";
} elseif($codec == 8) {
$codec = "Speex 9.3 Kbit";
} elseif($codec == 9) {
$codec = "Speex 12.3 Kbit";
} elseif($codec == 10) {
$codec = "Speex 16.3 Kbit";
} elseif($codec == 11) {
$codec = "Speex 19.5 Kbit";
} elseif($codec == 12) {
$codec = "Speex 25.9 Kbit";
} else {
$codec = "unknown (".$codec.")";
}
return $codec;
}
function getInfo() {
$this->socket = $this->getSocket($this->serverAddress, $this->serverQueryPort, $errno, $errstr, 0.3);
if($this->socket == false) {
return;
echo ("No Server");
} else {
$this->serverStatus = "online";
$this->sendQuery($this->socket, "sel ".$this->serverUDPPort);
if(!$this->getOK($this->socket)) {
echo "Server didn't answer \"OK\" after last command. Aborting.";
return;
}
$this->sendQuery($this->socket,"pl");
$this->playerList = array();
do {
$playerinfo = fscanf($this->socket, "%s %d %d %d %d %d %d %d %d %d %d %d %d %s %s"); // Teilweise Änderung von Dooki
list($playerid, $channelid, $receivedpackets, $receivedbytes, $sentpackets, $sentbytes, $paketlost, $pingtime, $totaltime, $idletime, $privileg, $userstatus, $attribute, $s, $playername) = $playerinfo;
if($playerid != "OK") {
$this->playerList[$playerid] = array(
"playerid" => $playerid,
"channelid" => $channelid,
"receivedpackets" => $receivedpackets,
"receivedbytes" => $receivedbytes,
"sentpackets" => $sentpackets,
"sentbytes" => $sentbytes,
"paketlost" => $paketlost / 100,
//-------------------------------------------------------------------------------------------------
"pingtime" => $pingtime, // hinzugefügt von Dooki
"totaltime" => $totaltime, // hinzugefügt von Dooki
"idletime" => $idletime, // hinzugefügt von Dooki
"privileg" => $privileg, // hinzugefügt von Dooki
"userstatus" => $userstatus, // hinzugefügt von Dooki
"attribute" => $attribute, // hinzugefügt von Dooki
//-------------------------------------------------------------------------------------------------
"s" => $s,
"playername" => $this->stripQuotes($playername));
}
} while($playerid != "OK");
$this->sendQuery($this->socket,"cl");
$this->channelList = array();
do {
$channelinfo = "";
do {
$input = fread($this->socket, 1);
if($input != "\n" && $input != "\r") $channelinfo .= $input;
} while($input != "\n");
$channelid = $this->getNext($channelinfo);
$channelinfo = $this->chopNext($channelinfo);
$codec = $this->getNext($channelinfo);
$channelinfo = $this->chopNext($channelinfo);
$parent = $this->getNext($channelinfo);
$channelinfo = $this->chopNext($channelinfo);
$d = $this->getNext($channelinfo);
$channelinfo = $this->chopNext($channelinfo);
$maxplayers = $this->getNext($channelinfo);
$channelinfo = $this->chopNext($channelinfo);
$channelname = $this->getNext($channelinfo);
$channelinfo = $this->chopNext($channelinfo);
$d = $this->getNext($channelinfo);
$channelinfo = $this->chopNext($channelinfo);
$d = $this->getNext($channelinfo);
$channelinfo = $this->chopNext($channelinfo);
$topic = $this->getNext($channelinfo);
if($channelid != "OK") {
if($isdefault == "Default") $isdefault = 1; else $isdefault = 0;
$playercount = 0;
foreach($this->playerList as $playerInfo) {
if($playerInfo[channelid] == $channelid) $playercount++;
}
$this->channelList[$channelid] = array(
"channelid" => $channelid,
"codec" => $codec,
"parent" => $parent,
"maxplayers" => $maxplayers,
"channelname" => $this->stripQuotes($channelname),
"isdefault" => $isdefault,
"topic" => $this->stripQuotes($topic),
"currentplayers" => $playercount);
}
} while($channelid != "OK");
$this->closeSocket($this->socket);
}
}
}
$tss2infosmall = new tss2infosmall;
//---> Orginalcode
//-------------------------------------------------------------------------------------------------
?>
Alles anzeigen
Script von navbox.TS-Viewer_small.php
PHP
<?php
// navbox.TS-Viewer_small.php
//
// (c) 2003 by Christian Müller
// non-commercial use approved, commercial users please contact me at [email]mueller@fmi.uni-passau.de[/email]
// i give no guarantees whatsoever about the correct functioning of this script
// use at your own risk
// date: 20/06/03, 23:28
//
// umgecodet und gestyled von Dooki
// Bei Problemem mit dem Script bitte bei Dooki melden.. [email]dooki@php-gfx.net[/email]
//
/*#################################*\
##\¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯/##
###> created by php-gfx.net <###
##/_______________________________\##
\*#################################*/
//
/*##########################################################################*\
##\¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯/##
###\ Der hier vorgestellte Download, darf ausschliesslich nur von /###
####\ [url]www.php-gfx.net[/url] runtergeladen werden! Jegliche Vervielfältigung /####
####/ oder Weiterverbreitung in jedem Medium als Ganzes oder in Teilen \####
###/ bedarf der schriftlichen Zustimmung von php-gfx.net. \###
##/________________________________________________________________________\##
\*##########################################################################*/
//
//-------------------------------------------------------------------------------------------------
//---> Orginalcode
require("TS-Viewer_small-config.php");
$tss2infosmall->getInfo();
//---> Orginalcode
//-------------------------------------------------------------------------------------------------
//---> Anfang <---\\
$tsviewer_small = "<table border=\"0\" width=\"100%\" cellpadding=\"0\" cellspacing=\"1\">
<tr>
<td class=\"navbg".$navalign."\" width=\"100%\" align=\"center\">[b]".$tss2infosmall->sitetitle."[/b]</td>
</tr>";
//---> Anfang <---\\
//-------------------------------------------------------------------------------------------------
//---> Orginalcode
$counter = 0;
foreach($tss2infosmall->channelList as $channelInfo) {
$channelname = $channelInfo[channelname];
$codec = $tss2infosmall->getVerboseCodec($channelInfo[codec]);
if($channelInfo[isdefault] == "1") $isDefault = "yes"; else $isDefault = "no";
if ($channelInfo[channelid] != "id") {
//---> Orginalcode
//-------------------------------------------------------------------------------------------------
//---> PHPKIT Userabfrage
$tsviewerusername = $USER[nick];
$tsv_array_1 = array(" ","[","]","(",")","{","}"); // Das wird gesucht..
$tsv_array_2 = array("_","","","","","",""); // ..und mit diesem ersetzt!
$tsv_counter = count($tsv_array_1); //
for($x=0;$x<$tsv_counter;$x++){
$tsviewerusername = str_replace($tsv_array_1[$x],$tsv_array_2[$x],$tsviewerusername);
}
//---> PHPKIT Userabfrage
//-------------------------------------------------------------------------------------------------
if($max_players < $channelInfo[maxplayers]) {
unset($max_players);
$max_players = $channelInfo[maxplayers];
}
unset($add);
$add = $channelInfo[currentplayers];
$current_players = $current_players+$add;
//-------------------------------------------------------------------------------------------------
//---> Orginalcode
}
$counter++;
}
//---> Orginalcode
//-------------------------------------------------------------------------------------------------
//---> Offline <---\\
if ($counter == 0) {
$tsviewer_small .= " <tr>
<td width=\"100%\" align=\"center\"><font class=\"headssmall\">[b]Offline[/b]</font></td>
</tr>";
} else {
//---> Channel <---\\
if($tss2infosmall->connectionLink == 1) {
$tsviewer_small .= " <tr>
<td class=\"navbg".$navalign."\" width=\"100%\" align=\"center\"><a class=\"nav".$navalign."\" href=\"teamspeak://".$tss2infosmall->serverAddress.":".$tss2infosmall->serverUDPPort."?channel=?password=".$tss2infosmall->serverPasswort."?nickname=".$tsviewerusername."\">[b]".$current_players." / ".$max_players."[/b]</a></td>
</tr>";
} else {
$tsviewer_small .= " <tr>
<td class=\"navbg".$navalign."\" width=\"100%\" align=\"center\">[b]".$current_players." / ".$max_players."[/b]</td>
</tr>";
}
//---> Channel <---\\
}
//---> Offline <---\\
//-------------------------------------------------------------------------------------------------
//---> Ende <---\\
$tsviewer_small .= "</table>";
//---> Ende <---\\
//-------------------------------------------------------------------------------------------------
$boxlinks[] = $tsviewer_small;
?>
Alles anzeigen
Und hier die Fehlermeldung die es immer anzeigt:
Code
Warning: main(TS-Viewer_small-config.php): failed to open stream: No such file or directory in /home/www/web128/html/ts/navigation/navbox.TS-Viewer_small.php on line 30
Fatal error: main(): Failed opening required 'TS-Viewer_small-config.php' (include_path='.:/usr/lib/php') in /home/www/web128/html/ts/navigation/navbox.TS-Viewer_small.php on line 30