Hallo,
einige von euch kennen sicher mein Projekt "ts3admin.class". Das ist eine Funktions-Bibliothek für PHP die euch alle Funktionen bietet die ihr braucht wenn ihr über eine Website mit PHP kommunizieren wollt.
Dadurch lassen sich z.B. ganz einfach Channel oder Server erstellen, User bearbeiten, Bilder hochladen usw.
Projektwebsite und Download findet ihr auf: http://ts3admin.info
Wie fängt man jetzt damit an fragt ihr euch sicher.
Folgende Voraussetzungen sollten erfüllt werden:
- Ein Webspace oder ein lokaler Apacheserver sollte vorhanden sein
- PHP-Kenntnisse
- Ein Teamspeakserver bei dem ihr die Logindaten zum Serveradmin-Zugang habt
Ist dies alles vorhanden wäre es wahrscheinlich noch am besten wenn ihr die IP eures Webspaces in die Whitelist von Teamspeak eintragt, damit ihr nicht bei zu vielen Querys über die Website gebannt werdet (das geht sehr schnell!).
Sind bis jetzt alle Vorkehrungen getroffen, die PHP-Klasse "ts3admin.class.php" gedownloaded und ihr seid startklar, so kann nun begonnen werden.
Wir erzeugen also eine Test-PHP Datei, test.php und legen sie auf das Website. Im selben Verzeichnis platzieren wir nun die "ts3admin.class.php".
Jetzt muss die test.php bearbeitet werden.
Schritt 1: Laden der ts3admin.class.php
Schritt 2: Erzeugen eines ts3admin-Objekts:
<?PHPrequire_once("ts3admin.class.php");$ts = new ts3admin("<IP DES TS-SERVERS>", "<QUERY-PORT (Standard 10011)>");?>
Schritt 3: Überprüfen ob die Verbindung aufgebaut werden kann:
<?PHPrequire_once("ts3admin.class.php");$ts = new ts3admin("<IP DES TS-SERVERS>", "<QUERY-PORT (Standard 10011)>");$ergebnis = $ts->connect();echo $ergebnis['success'] ? 'Verbindung hergestellt' : 'Verbindung konnte nicht hergestellt werden';if(count($ts->getDebugLog()) > 0) { foreach($ts->getDebugLog() as $logEntry) { echo $logEntry.'<br>'; }}?>
Das Script gibt "Verbindung hergestellt" aus wenn alles geklappt hat, wenn nicht dann gibt es "Verbindung konnte nicht hergestellt werden" und die entsprechenden Fehlermeldungen aus.
$ergebnis['success'] spreche ich an, weil die Rückgaben von Funktionsaufrufen immer das gleiche Muster haben bei der ts3admin.class:
Array ( ['success'] => true/false (je nach dem ob die Ausführung erfolgreich war) ['errors'] => entweder leer wenn kein Fehler aufgetreten ist oder ein Array mit Fehlermeldungen: Array ( [0] => 'Falscher Port' [1] => 'PHP-Script ist schwanger und kann deshalb nicht ausgeführt werden' ) ['data'] => Liefert als Array oder Plaintext die Informationen die angefordert wurden zurück (siehe Doku für beispiele))
$ts->getDebugLog() ruft den globalen Fehlerspeicher der ts3admin.class ab, somit erhalte ich alle Fehler die aufgetreten sind beim Ausführen des kompletten PHP-Scripts.
Das errors Element der entsprechenden Funktionsrückgabe gibt nämlich nur Fehler innerhalb des Funktionsaufrufes zurück.
Theoretisch können nun beliebig Abfragen an den Server gesendet werden, welche Funktionen es dazu gibt bitte immer aus der DOKU entnehmen.
Hier mal ein Beispielscript um eine Liste der aktiven Clients auszugeben:
/*-------SETTINGS-------*/
$ts3_ip = '127.0.0.1';
$ts3_queryport = 10011;
$ts3_port = 9987;
/*----------------------*/
#Include ts3admin.class.php
require_once("ts3admin.class.php");
#build a new ts3admin object
$tsAdmin = new ts3admin($ts3_ip, $ts3_queryport);
if($tsAdmin->getElement('success', $tsAdmin->connect())) {
#select teamspeakserver
$tsAdmin->selectServer($ts3_port);
#get clientlist
$clients = $tsAdmin->clientList();
#print client count
echo count($clients['data']) . ' clients on selected server<br><br>';
#print clients to browser
foreach($clients['data'] as $client) {
echo $client['client_nickname'] . '<br>';
}
}else{
echo 'Connection could not be established.';
}
if(count($tsAdmin->getDebugLog()) > 0) {
foreach($tsAdmin->getDebugLog() as $logEntry) {
echo '<script>alert("'.$logEntry.'");</script>';
}
}
Alles anzeigen
Weitere Beispielscripts folgen diesen Thread in naher Zukunft.