Beiträge von Sebbo

    Ganz deiner Meinung. Ich bin auch ein Freund von hilfreichen, also ausführlichen Antworten.


    Das zu erklären, würde allerdings ein ziemlich langer Text werden.


    Hinweis: Ich hab gerade keinen TeamSpeak Client zur Verfügung. Daher können z.B. genannte Menüpunkte oder Rechte falsch benannt sein.


    Sobald man am Rechtesystem arbeitet, sollte man das "Fortgeschrittene Rechtesystem" in den Einstellungen vom eigenen TeamSpeak Client aktivieren:

    1. Extras > Optionen
    2. Anwendung
    3. "Fortgeschrittenes Rechtesystem" aktivieren
    4. "Anwenden" und "OK" anklicken

    Ansonsten sieht man deutlich weniger Einstellungen und vor allem auch nicht die, die man benötigt.


    Nachfolgend ein paar kurze Infos zu den Rechten:

    • Es gibt meistens immer zwei Rechte: Einmal die "Power" (z.B. i_group_modify_power) und einmal die "Needed Power" (z.B. i_group_needed_modify_power)
    • Rechte, die Ganzzahlen (Integer) unterstützen, können einen Wert zwischen 0 und 75 erhalten. Mehr als 75 ist theoretisch auch möglich, sollte aber vermieden werden, da die Server Admin Gruppe die höchsten Rechte mit 75 hat. Ich persönlich konfiguriere jede Servergruppe immer in (ungefähr) 10er Schritten, damit man notfalls später dazwischen noch ein paar Gruppen erstellen kann, die man aktuell z.B. nicht eingeplant hat: Gäste 0, Normal z.B. 10, Member 20, [...], Moderator 50, Co-Admin 60, Server Admin 75. Welche Werte man aber nimmt, ist jedem selbst überlassen und auch eine Frage "des Geschmacks".
    • Beide Rechte können einem einzelnen Client und/oder einer Servergruppe hinzugefügt und konfiguriert oder auch entfernt werden. Entfernt man das Recht, besitzt er dieses nicht. Fügt man es hinzu, gilt der eingestellte Wert.
    • Ein Client kann das selbe Rechte mit unterschiedlichen Werten erhalten, wenn er z.B. in mehreren Servergruppen ist. In diesem Fall überschreiben sich die Rechte je nach Einstellung automatisch. Ein "Rechtsklick" auf den einzelnen Client im TeamSpeak > Rechte > Übersicht (oder so ähnlich) zeigt detailliert, welches Recht welches überschreibt und deswegen gilt.
    • Die "Needed Power" definiert immer, wie viel "Power" ein Client benötigt, um die Aktion ausführen zu dürfen. Nachfolgend ein kurzes Beispiel anhand von "Join Power":
      • Channel-Einstellung: Needed Join Power 50 => Ein Client benötigt 50 oder mehr "Join Power"
      • Servergruppen-Einstellung "Server Admin": Join Power 75 => Clients, die Mitglied der "Server Admin" Gruppe sind, haben eine "Join Power" von 75 und dürfen den Channel betreten
      • Servergruppen-Einstellung "Normal": Join Power 50 => Clients, die Mitglied der "Normal" Gruppe sind, haben eine "Join Power" von 50 und dürfen den Channel betreten
      • Servergruppen-Einstellung "Guest": Join Power 0 => Clients, die Mitglied der "Guest" Gruppe sind, haben eine "Join Power" von 0 und dürfen den Channel NICHT betreten
    • Die Rechte kann man immer entsprechenden Servergruppen zuweisen, was empfohlen wird. Alternativ oder auch zusätzlich können bestimmte, also einzelne Clients auch "Sonderrechte" erhalten. Das empfehle ich persönlich allerdings nicht, da man dann relativ schnell den Überblick verliert und mit der Zeit auch viele einzelne Clients anfasse muss, wenn man ein oder mehrere Rechte aller entsprechenden Clients ändern möchte. Daher zentral lieber eine Servergruppe einrichten, diese konfigurieren und die entsprechenden User zur Servergruppe hinzufügen.
    • Ein paar Rechte kann man auch auf dem TeamSpeak Server konfigurieren. Zum Beispiel die Rechte, die man braucht, um Channel zu betreten - die sogenannte "(Needed) Join Power". Editiere hierzu einen Channel und setze hierfür entsprechend notwendige Rechte (needed power).
    • Server Gruppen können im Nachhinein jederzeit problemlos umbenannt werden. Es gehen dadurch keine Einstellungen / Rechte / Client-Zuordnungen verloren.

    Zu deinem Problem / Anliegen:


    Mitglieder der Standard Servergruppe "Server Admin" haben die höchsten und somit alle Rechte auf dem TeamSpeak Server. Du kannst (und solltest) ihnen daher nichts verbieten. Wenn du das einmal falsch einschränkst, kann im Notfall nur noch der ServerQuery serveradmin die Rechte wieder retten und das sollte man möglichst vermeiden.


    Möchtest du anderen Clients ebenfalls Server Admin Rechte geben, jedoch nicht alle (also eingeschränkt), empfiehlt es sich z.B. die Server Admin Gruppe zu kopieren und deren Rechte etwas herunter zu schrauben. Du könntest dann z.B. folgende "Admin" Gruppen haben:

    • Server Admin (Standard; alle und höchste Rechte)
    • Co-Admin (kopierte Rechte von "Server Admin" Servergruppe)

    Alternativ könntest du diese z.B. auch noch umbenennen:

    • Server Admin => "Super Server Admin" oder "Betreiber"
    • Co-Admin => "Server Admin" (angeblich)

    Das ist aber jedem sich selbst überlassen. Man persönlich muss am Ende noch wissen, welche Servergruppe welche ist und welche vor allem der eigentliche "Server Admin" ist.


    Nach dem kopieren muss man noch die Rechte der neuen Servergruppe "Co-Admin" anpassen, sprich reduzieren / einschränken / heruntersetzen. Das im Detail zu erklären, würde jetzt finde ich etwas eklig werden, daher nur kurz angerissen:

    1. Co-Admins sollten die eigentliche Server Admin Gruppe NICHT bearbeiten (modify) können. Das heißt, "Co-Admin" sollte z.B. eine "Gruppen Modify Power" von z.B. 60 haben, während Server Admin 75 hat. Gleichzeitig braucht Server Admin das Rechte "Needed Gruppen Modify Power" mit dem Wert 75, sodass die Gruppe sich selbst bearbeiten darf, Co-Admins es aber nicht dürfen.
    2. NUR Server Admins sollten in der Lage sein, Clients zur "Server Admin" Gruppe hinzufügen und entfernen zu dürfen. Co-Admins sollten das nicht dürfen, da sie ja weniger Rechte haben. Selbes Prinzip wie beim Gruppe bearbeiten: Server Admin kriegt eine "Client Add Power" und "Needed Client Add Power" von 75, während Co-Admin die selben Rechte aber mit dem Wert 60 erhalten. Das selbe dann auch für "Client Remove Power" und "Needed Client Remove Power".
    3. Erstelle einen Channel, in dem nur Server Admins rein dürfen. Konfiguriere in den EInstellungen vom Channel daher die "Needed Join Power" von 75. Deine Server Admin Gruppe darf von Haus aus rein. Stelle nun nur noch sicher, dass die "Join Power" von der Co-Admin Gruppe weniger als 75 ist - z.B. wieder 60.
    4. Ansonsten gehe ich bei solchen Co-Admin Gruppen immer so vor, dass ich einmal alle Rechte durchklicke und die Werte von z.B. den ursprünglichen 75 auf die z.B. neuen 60 ändere. Das stellt schon mal sicher, dass die neue Gruppe nicht so viele Rechte wie die ursprüngliche hat.
    5. Nachdem die wichtigsten Einstellungen vorgenommen wurden, muss man alle Rechte einfach mal durchschauen und bei Bedarf entfernen, hinzufügen oder anpassen. Das ist natürlich relativ zeitintensiv. Ein Grund, warum ich das lieber andere machen lasse. :D

    Am besten kann man neue Servergruppen testen, indem man eine neue Identität im TeamSpeak erstellt, sich mit dieser auf den TS verbindet, diesem neuen Client die neue Servergruppe gibt und dann einfach testet, ob alles so funktioniert, wie man sich das vorstellt.


    Das Rechte-System von TeamSpeak ist sehr mächtig und dadurch auch sehr komplex. Es gibt daher für das selbe Problem z.B. auch mehrere Lösungswege.


    Ich hoffe, ich konnte dir damit etwas den Weg weisen und dir weiterhelfen.

    Ach, wir waren ja auf einem MacBook unterwegs. Dann sollte die Client Log-Datei unter ~/Library/Application\ Support/TeamSpeak\ 3/logs/ oder so ähnlich liegen. Sorry. :D


    Der von dir gezeigte Fehler hilft mir persönlich leider nichts. Das kommt ja vom Betriebssystem. Die Log vom Client sollte da hilfreichere Infos haben.

    Servus,

    steht in deiner Client Log-Datei vielleicht etwas zu diesem Absturz drin? Die Datei liegt unter %appdata%\TS3Client\logs\.


    Du kannst auch mal das heruntergeladene Plugin entpacken (es ist nur eine ZIP-Datei), die plugins/SaltyChat/settings-example.json als plugins/SaltyChat/settings.json kopieren, dann das Plugin erneut zippen (packen) und es dann nochmal versuchen zu installieren.


    Klappt dies noch immer nicht, kannst du in der zuvor kopierten plugins/SaltyChat/settings.json mal die Einstellung LogLevel von Info auf Debug (oder Extensive) ändern, es nochmal zippen und erneut installieren. Dann sollte beim nächsten Start-Versuch hoffentlich mehr in der Log stehen.


    Alternativ kannst du auch auf deren Discord das Problem direkt melden: https://discord.gg/MBCnqSf


    Die Entwickler werden dir da vermutlich am besten weiterhelfen können.

    Das Problem wurde gelöst.


    Die Port-Weiterleitung am Router war teils inkorrekt, hat aber letztendlich nicht das Problem verursacht, da die notwendigen Ports korrekt weitergeleitet wurden. Beim Port 10011 hat nur eine Null gefehlt, aber SSH hätte trotzdem funktioniert.


    Die eigentliche Ursache war ein falsches serveradmin Passwort. Wir haben es gemeinsam basierend auf dieser FAQ zurück gesetzt: ServerQuery Passwort ändern


    Der Login funktioniert nun per RAW (10011) und SSH (10022) ServerQuery.


    Im YaTQA sollte es dann so aussehen:


    pasted-from-clipboard.png


    Das Passwort (die Punkte im rechten rot markierten Feld) ist dann das, was dir NightWolf mitgeteilt hat. Das kurze, das mit n oder so anfängt.


    Viel Erfolg und Spaß euch beiden! ;)

    Weder er selber noch ich von außerhalb können sich mit dem Tool anmelden.

    Kannst du deinen Kumpel (Hoster/Betreiber) mal bitte fragen, ob in seiner Log von der TS3 Instanz (endet immer auf _0.log) eine Zeile wie diese hier zu finden ist?

    Code
    2021-06-11 11:02:28.950466|INFO    |Query         |   |listening for query on 192.168.2.53:10011, [2001:db8::1]:10011
    2021-06-11 11:02:28.950643|INFO    |Query         |   |listening for ssh query on 192.168.2.53:10022, [2001:db8::1]:10022

    Die erste Zeile wäre der von Phil genannte "raw" Port, damals auch oft "telnet" genannt. Das bietet eine unverschlüsselte Verbindung.

    Der andere Port (10022/TCP) bietet eine verschlüsselte Verbindung und ist der neuere Port, der per SSH (statt telnet) angesprochen wird.


    Mindestens einer dieser Zeilen sollte existieren. Die Ports sind natürlich frei konfigurierbar und können deshalb anders sein. Aber der Wortlaut "listening for query" oder "listening for ssh query" ist immer identisch.


    Sobald diese Ports lauschen (listen), sollten diese auch erreichbar sein.


    Bitte auch bedenken, dass die Ports in der Linux/Windows Firewall, sowie ggfs. in einer weiteren Firewall freigeschalten werden muss. Ebenso - wenn ein Router dazwischen hängt - muss der Port am Router entsprechend weitergeleitet werden.


    Bitte bedenkt, dass beide Query Ports das Protokoll "TCP" verwenden. Nur die Voiceports verwenden das "UDP" Protokoll.

    sollte er dich auch auf die Whitelist setzen und / oder auch eventuell in der Firewall deine IP freigeben.

    Das wird vermutlich sehr schwierig, weil kaum eine Privatperson eine statische (feste) IP Adresse Zuhause hat. Da müsste man also täglich, wöchentlich (je nach Provider anders) die IP Adresse überall aktualisieren. Das wird lästig. Die Portfreigabe/-weiterleitung am Router zum TS3 Server Host/PC reicht aus eigener jahrelanger Erfahrung.


    YaTQA passt die Query Flooding-Einstellungen automatisch beim ersten verbinden an, wenn diese zu niedrig sein sollten und somit die Gefahr bestehen könnte, dass sich YaTQA selbst aussperrt.

    Wir haben uns das Problem gemeinsam angeschaut. Die Port-Freigaben haben gepasst.


    Da der FRITZ!Box Cable Router jedoch einen (Dual Stack) DS-Lite verwendet, ist der TeamSpeak Server von extern nicht erreichbar.


    Theoretisch sollte man über IPv6 den TS3 Server erreichen können, allerdings sah es so aus, als ob der Provider auch die IPv6 Adresse nochmals NATed, nachdem die im Router anders war, als die, die man z.B. auf https://www.wieistmeineip.de/ sehen konnte.


    Hier eine ausführlichere Erklärung mit Schaubild, wie so ein DS-Lite aufgebaut sein sollte und funktioniert: https://www.elektronik-kompendium.de/sites/net/2010211.htm


    Hier ein paar andere Themen zum gleichen Problem:

    Mögliche Lösungen wären folgende:

    • Eine "echte" IPv4 Adresse beim Provider anfragen, um kein DS-Lite mehr zu haben. (wird vermutlich eher schwierig; Business Tarife bieten oftmals eine Lösung)
    • Einen (FIP) VPN-Tunnel auf dem Windows Rechner konfigurieren, auf dem der TS3 Server läuft: https://www.feste-ip.net/fip-vpn/videos/
    • Einen VPN Tunnel in der FRITZ!Box konfigurieren
    • Einen Port-Mapper Service nutzen
    • Einen eigen gehosteten Port-Mapper konfigurieren (identisch mit Port-Mapper Service, aber eigener kleiner (v)Server im Rechenzentrum)

    ApfelCast erklärt die obigen Punkte auch sehr gut:

    Externer Inhalt www.youtube.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.


    Ich persönlich würde erstmal die Lösung mit dem FIP VPN-Tunnel mit Hilfe von OpenVPN versuchen. Die klingt vielversprechend und am einfachsten.

    Mhmm, der originale Code sieht auch ganz sinnig aus.


    Andere Frage: Hast du die IP Adresse von dem Host in deiner Query Whitelist eingetragen, von der das Skript sich auf deinen TS3 Server verbindet?


    Da wo dein ts3server_startscript.sh liegt, sollte im selben Ordner auch eine query_whitelist.txt / query_allowlist.txt oder so ähnlich liegen. Da in eine neue Zeile bitte die IP Adresse von deinem Webserver eintragen, damit der nicht immer gebannt wird.


    Ich kann mir gut vorstellen, dass das Skript zu viele Query Anfragen sendet und deshalb nach einiger Zeit geblockt wird. Dann dürfte der String "TS3" nämlich auch nicht mehr vom Socket zurück geliefert werden und dann kommt es zu genau diesem Problem.

    Ui, ui, ui. Ich hab eure Code-Blöcke erstmal richtig formatiert, damit diese leserlicher und vor allem korrekt formatiert dargestellt werden. :D


    Es gibt zwei Arten von Code:

    • Mehrzeilige mit Syntax-Highlighting: Text-Editor Menü Symbol </>
    • Einzeilige im Fließtext - aber ohne Syntax-Highlighting: Text-Editor Menü Symbol >_

    ---

    Wie mein Vorgänger bereits schrieb, nutzt das Skript hier eine eigen gebaute Funktion, um die Daten vom Socket zu lesen. Leider sehen und kennen wir die Funktion read() nicht.

    $msg = $this->read();

    Ich habe es kurz geprüft: Die aktuellste Version gibt als aller erste Zeile noch immer TS3 zurück. Insofern sollte die Prüfung erfolgreich sein. Ich habe es mir mal kurz nachgebaut:

    Bash
    $ php foobar.php
    Successfully connected!

    Dein Problem sollte also auch gelöst sein, sobald du diese Zeile...

    PHP
    $msg = $this->read();

    ...durch diese hier ersetzt:

    PHP
    $msg = fread($this->fp, 3);

    Kannst es ja mal probieren und Feedback geben. :)

    Damit ist gemeint, dass eventuell in seinen Teamspeak-Dateien (Server) Fehler vorhanden sind.

    Achso. Mhmm... Da würde ich allerdings einen anderen Fehler erwarten. Aber ja: Jeder noch so seltsame Fehler kann zu anderen seltsamen Fehlern führen. Insofern: Prüfen was das Zeug hält. :D


    Ach... Jetzt hab ich das erst gesehen. Ich war gestern Abend offenbar schon viel zu müde. :D

    Errors Server seems to be no TS3

    Da steht übersetzt ja so viel wie "Fehler: Server scheint kein TS3 zu sein". Ich hatte gestern Abend irgendwas von "keine Verbindung" gelesen. Da sieht man erstmal, wie müde ich gestern Abend war. :D


    Gut. Aber basierend auf deiner Instanz-Log Datei sieht das ja nach einem gültigen und originalen TeamSpeak 3 Server aus. Er hat nur keine Lizenz, aber das sollte dem Modul ja egal sein, solange der TS3 Server erreichbar ist.


    Ich konnte bei Google leider auch nichts zu diesem Fehler finden. Der Support von diesem Modul wurde inzwischen auch eingestellt, insofern kann man die nicht mal mehr fragen: https://eqdkpplus.github.io/?s…nread&pageNo=14&tagID=821 :(


    Aber wenn du Glück hast, ist der Quellcode einsehbar. Dann könntest du einfach nach dem Fehler im Code suchen und anhand dessen den Fehler analysieren, debuggen und fixen. Notfalls auch den Code anpassen.

    2021-08-29 18:14:07.663959|WARNING |ServerLibPriv | |The system locale is set to "C" this can cause unexpected behavior. We advice you to repair your locale!

    Kann man ignorieren oder fixen. Hier ist ein Lösungsvorschlag: https://github.com/TS3Tools/TS…you-to-repair-your-locale


    Ich kann mir aber nicht vorstellen, dass das zu diesem Problem führt. Du kannst es ja mal fixen und schauen, ob es danach fehlerfrei funktioniert. :/

    2021-08-29 18:14:16.002185|WARNING |Accounting | |Unable to open licensekey.dat, falling back to limited functionality

    Die Warnung könnte man auch mal als Info markieren. Wenn man keine Lizenz hat, hat man halt nur 32 Slots und einen virtuellen Server. Eine Lizenz-Datei würde die "Warnung" fixen, aber da hat man am Ende nur mehr virtuelle Server und/oder Slots. Also nichts relevantes für das Problem hier.


    Die Log-Datei vom virtuellen Server meldet auch nichts interessantes, oder?


    Gibt es eine Log von diesem Modul? Oder kann man da irgendein Debugging aktivieren, um mehr Infos zum Fehler zu erhalten?

    Guten Abend und herzlich Willkommen im Forum Markus,

    Ui, das sind ganz schön viele Informationen. ;)

    1. Du hast falsche und somit auch zu viele Ports freigegeben.
    2. Wenn du einen Host als "Exposed Host" konfigurierst, sind automatisch alle Ports für diesen offen / freigegeben. Das würde ich dir NICHT empfehlen, da du damit quasi alle Türen und Schlösser entfernst und keinerlei Schutz hast. Gib stattdessen nur die Ports frei, die wirklich notwendig sind. (siehe nachfolgenden Link)
    3. Ports inkl. Protokoll (TCP oder UDP), die du freigeben musst und die, die optional sind: https://support.teamspeak.com/…e-TeamSpeak-3-server-use-
    4. Theoretisch reicht es, wenn du den UDP Port 9987 (Standard Port für den ersten virtuellen TS3 Server; ansonsten bitte den deines virtuellen Servers herausfinden) für die Sprachübertragung frei gibst bzw. auf den Host im Netzwerk weiterleitest (Port-Forwarding)
    5. Bitte beachte, dass alle Ports jeweils in der Windows Firewall, sowie in der FRITZ!Box identisch freigegeben werden müssen. Ansonsten blockiert eine der beiden Firewalls den Traffic.
    6. Versuche erstmal die Windows Firewall korrekt einzurichten. Die kannst du testen, indem du von einem anderen Endgerät (PC, Notebook, Tablet, Smartphone, ...) versuchst, dich auf deinen TS3 Server auf dem Windows Host zu verbinden.
    7. Klappt die Verbindung innerhalb des privaten eigenen Netzwerkes, kannst du dich an die Firewall der FRITZ!Box dran machen. Selbes Spiel: Konfigurieren und von außerhalb (per mobile Daten vom Smartphone z.B. oder einen Freund fragen) testen, ob man auf den TS3 Server kommt.

    Die Funktion sollte laut Dokumentation im Code ein Multidimensionales Array zurück liefern, sprich sowas hier:

    In diesem Fall sollte der count() die Anzahl der höchsten Array Elemente zurück geben. In diesem Beispiel also 3 - 0, 1 und 2.


    Wenn du - wie du beschrieben hast - immer nur ein so ein Sub-Array zurück bekommst, also sowas hier:

    PHP
    Array
    (
        [cldbid] => 54103
        [client_nickname] => JemandAnderes //with -names parameter
        [client_unique_identifier] => nUixbsq/XakrElSEO30R/D5Tb=
    )

    ...dann hat diese Servergruppe vermutlich nur dieses eine Mitglied. Hast du in TeamSpeak schon mal geprüft, wie viele Mitglieder diese Gruppe haben sollte? Stelle bitte auch sicher, dass du die richtige ID an serverGroupClientList() übergibst.


    In diesem Fall solltest du vielleicht noch prüfen, ob es ein Multidimensionales Array oder ein einfaches ist:

    Oder in kurz, als Einzeiler (wenn ich mich nicht vertippt habe ^^) :

    PHP
    $servergroup_supporter_member_counter = (count($servergroup_supporter_member_list) == count($servergroup_supporter_member_list, COUNT_RECURSIVE)) ? 1 : count($servergroup_supporter_member_list);
    
    echo "$servergroup_supporter_member_counter Supporter";

    Guten Abend und herzlich Willkommen im Forum DomGerMen !

    Erstmal: Die ts3admin.class ist glaube ich veraltet und wird nicht mehr unterstützt. Zumindest scheint es so, als ob das Projekt eingestampft wurde, da ich weder die Webseite, noch einen Git Repository oder so gefunden habe. Hätte ich die Datei also selbst nicht mehr rumliegen gehabt, hätte ich es gar nicht mehr gefunden. :D


    par0noid hast du das Projekt ts3admin.class eingestampft?


    Falls es wirklich eingestampft wurde, solltest du z.B. das TS3PHPFramework (github.com/planetteamspeak/ts3phpframework) verwenden, wobei das ebenfalls aussieht, als ob es "tod" wäre - letzte Version von April 2018. In der Zwischenzeit haben sich eine Menge Dinge geändert bzw. wurden hinzugefügt, die in dem Projekt dann vermutlich fehlen oder nicht ordnungsgemäß funktionieren.


    Alternativ gibt es noch die "neue" WebQuery API, die ich persönlich mir allerdings noch garnicht weiter angeschaut habe. Da weis vielleicht jemand anders mehr.


    Nun zu deinem eigentlichen Problem...


    serverGroupClientList($sgid, $names = false) ist eine Funktion. So, wie du das aktuell aber angegeben hast, ist es kein Funktionsaufruf, sondern ein Indexname.

    PHP
    $supp = $sinfo['serverGroupClientList(10)'];

    10 sollte in diesem Fall die ID der Servergruppe sein, dessen Clients du haben möchtest.


    Um die Funktion nun als Funktion statt als Indexname aufzurufen, müsste das ganze so aussehen:

    PHP
    $supp = $ts3->serverGroupClientList(10);

    Das sollte dir dann etwas ähnliches wie nachfolgendes Beispiel zurück liefern:

    PHP
    // echo "<pre>";
    // print_r($supp);
    Array
    {
      [cldbid] => 2017
      [client_nickname] => Par0noid //with -names parameter
      [client_unique_identifier] => nUixbsq/XakrrmbqU8O30R/D8Gc=
    }

    Wenn ich deinen Code aber richtig verstanden habe, hast du vor, einen Counter, statt einem Array zu erhalten, weil du z.B. 3 Supporter auf dem Banner anzeigen möchtest. Richtig?


    In diesem Fall musst du noch zählen, wie viele User im Array zurück geliefert werden. Das sollte so funktionieren (ich habe es nicht getestet):

    Code
    $supp = count($ts3->serverGroupClientList(10));

    Danach solltest du eine Zahl in $supp haben.


    Zur Erklärung:

    1. PHP Skript auf TS3 Instanz verbinden: $connecting = $ts3->connect();
    2. PHP Skript auf der TS3 Instanz authentifizieren: $logging = $ts3->login($ts3config['ts3user'], $ts3config['ts3pass']); (kann man auch wie in deinem Fall nach dem selectServer() machen, aber in der Regel macht man das als zweiten Schritt.
    3. PHP Skript in deinem Fall auf den notwendigen virtuellen TS3 Server verbinden: $select = $ts3->selectServer($ts3config['ts3port'], true);
    4. $select wird in deiner Funktion zurück gegeben; das ist die aktive, authentifizierte Verbindung zu deinem virtuellen TS3 Server, die du dann als $ts3 abspeicherst: $ts3 = tsconnect();
    5. ts3admin.class Funktionen rufst du daher nun in der Regel über $ts3 auf:
      1. $ts3->serverInfo() liefert in dem Fall z.B. Server Informationen vom virtuellen Server - NICHT von der kompletten Instanz.
      2. $ts3->clientList() liefert eine Liste aller Clients zurück, die auf dem TeamSpeak Server online sind.
      3. $ts3->serverGroupClientList(10) liefert alle Mitglieder der Servergruppe mit der ID 10 zurück. Unabhängig davon, ob sie gerade auf TeamSpeak sind oder nicht.

    PS: Ich empfehle dir, deine Variablen sinnvoller zu benennen, damit man direkt erkennt, was diese beinhalten sollten. Beispiel: $servergroup_supporter_member_counter :)

    Hallo und herzlich Willkommen im Forum Untouch !

    Für die ganzen Informationen gab es direkt erstmal einen "Daumen hoch". :)


    Ich hätte da noch ein, zwei Fragen:

    1. Von welchem "Webserver Modul" redest du? Gibt es da einen Link oder so dazu? Ein Name? Marke Eigenbau?
    2. Wie versucht sich das Skript auf den TS3 Server zu verbinden? ServerQuery? WebQuery?
    3. Hast du mal geprüft, ob der TS3 Server dann noch ordnungsgemäß läuft und auch erreichbar ist?
    4. Loggt der TS3 Server irgendwelche Fehler? Wenn ja: Welche?
    5. Hast du ggfs. noch mehr Informationen / Logs als nur diese eine Fehlermeldung?

    3. Dein Teamspeak-Server hat keine reinen Dateien, so dass das Script nicht die nötigen Daten finden kann.

    Das verstehe ich nicht. Was meinst du damit? Und was sind "reine Dateien"? Leere Dateien (0 Byte groß)?