Channel Script: Erstellt und Löscht Channels

Admin | geschrieben am | zuletzt bearbeitet am

Willst du automatisch Channel vergeben mit dem Teamspeak Channel Script?

Hier ein einfaches Teamspeak Channel Skript, dass automatisch überwacht, wie lange schon keine User mehr im Channel sind und dann die unbenutzten Channels nach einer einstellbaren Zeit löscht…

Was brauchst du damit das Teamspeak Channel Script funktioniert?

  • Webspace mit PHP und MySQL
  • Einen CRONJOB, wenn du nicht regelmäßig selbst das Script starten willst
  • Natürlich einen Teamspeak Server mit Query Zugang

Wie installierst du das Teamspeak Channel Script?

Kopiere die 4 Dateien auf deinen Webspace in den gleichen Ordner. Dann konfiguriere alle Zugangsdaten in der config.inc.php. Die Beschreibung steht immer über den Variablen. Lege eine Tabelle in einer Datenbank an mit mindestens diesen Feldern:

  • cid (INT unsigned für die ChannelID Nummern)
  • cname (CHAR 128 für die Channelnamen)
  • zeit (DATETIME für den Zeitpunkt an dem zuletzt ein User online war)

Du kannst das auch gerne erweitern und zusätzliche Sachen mit aufzeichnen. Nun sollte das Skript schon funktionieren. Einfach die updateTsChannel.php, oder die createTsChannel.php im Browser aufrufen und testen. Wenn du einen Fehler hast, oder Fragen, dann schreib einfach in die Kommentare! Ich helfe dir natürlich gerne.

Wie automatisierst du das mit einem CronJob?

Also jedes mal wenn jemand die Channel Liste ansieht, also updateTsChannel.php aufruft, werden die Channels überprüft. Wenn User online sind, wird die Zeit auf „Jetzt“ gesetzt. Wenn jetzt also Leute online sind und in der Zeit keiner das Skript aufruft, werden sie schlicht „übersehen“ und der Channel läuft trotzdem aus. Darum muss das Skript immer wieder aufgerufen werden. Dazu nimmst du am besten „cron“ auf einem Linux Server, oder wenn du keinen hast: https://www.cronjob.de/

Im cronJob brauchst du nur festzulegen, dass das Skript updateTsChannel.php alle 5, oder 10 Minuten aufgerufen wird. Das sollte reichen um niemanden zu „übersehen“.

Wenn du noch Wünsche zum Teamspeak Channel Script hast, bitte einfach in die Kommentare schreiben! Ich antworte auf jeden Fall. Vielleicht werde ich das Skript auch noch weiterentwickeln, wenn jemand noch Funktionen braucht!

Natürlich muss das HTML noch angepasst werden! Um Aussehen ging es erstmal nicht für mich!

Hier der Link zum Download:

channelScript.zip – Teamspeak Channel Script

mfg Thomas

Geschrieben von Admin

Ich arbeite seit Version 1 mit Teamspeak Servern.

49 Kommentare zu “Channel Script: Erstellt und Löscht Channels”

    patrick sagt:

    Hallo könntes du für uns , Gameserver/ts3 mitten Script machen das die Kunden die Gameserver /ts3 timer haben das sie wieder Off gehen können .
    PFG Patrick

    Thomas sagt:

    Hallo Patrik,

    Ich kann mir auf jeden Fall mal genauer ansehen, was ihr da braucht. Ich schau mir mal die Homepage an und schreib dir dann gleich eine E-Mail und wir besprechen das im TS. Für so kleine Projekte für Clans und Gilden nehme ich mir gerne ein Zeit.

    mfg Thomas

    Dave sagt:

    Ein Fehler ist aufgetreten: you can’t use this function if no server is selected

    unCool Funktioniert mal garnich 🙁

    Dave sagt:

    Tip Fehle rin der Config 😀

    $ts3_port=9987;

    („) Hat gefehlt xD

    Thomas sagt:

    Hallo Dave,

    Das stimmt, danke! 🙂

    Ich werde die Anführungszeichen nachreichen 🙂

    mfg Thomas

    Thomas sagt:

    Hallo,

    wenn du die Tabelle nicht „Teamspeak“ nennen willst, kannst du das Script folgendermaßen abändern:

    Du kannst die Variable $datenbank_tabelle=“…“ noch mit in die config machen und dann in der Datei createTsChannel die Zeile 49 durch:

    $sql_befehl = ‚INSERT INTO ‚.$datenbank_tabelle.‘

    ersetzen.

    In der Datei updateTsChannel musst du 4 Zeilen ausbessern:

    Zeile 27: $sql_befehl = ‚SELECT * FROM ‚.$datenbank_tabelle.‘ ORDER BY id;‘;
    Zeile 35: $sql=’UPDATE ‚.$datenbank_tabelle.‘ SET zeit=NOW() WHERE cid=‘.$daten[‚cid‘].‘;‘;
    Zeile 41: $sql=’DELETE FROM ‚.$datenbank_tabelle.‘ WHERE cid=‘.$daten[‚cid‘].‘;‘;
    Zeile 53: $sql=’DELETE FROM ‚.$datenbank_tabelle.‘ WHERE cid=‘.$daten[‚cid‘].‘;‘;

    Wenn noch was nicht klappt, sag Bescheid.

    mfg Thomas

    Ali Hussein sagt:

    Hallo,

    erste mal vielen Dank, dass du sowas „Kostenlos“ machst. bei mir ich erstelle Channels aber bekomme kein Token.

    2. Und wie kann ich das Design änderen ?

    Vielen Dank

    Thomas sagt:

    Hallo Ali,

    Der Token sollte automatisch angezeigt werden. Sonst stimmt was mit dem Script nicht. Vielleicht sind die Serverdaten in der config falsch, oder die Verbindung klappt nicht.

    Das Design kannst du über Html und CSS ganz nach deinen Wünschen ändern. Einfach die Script Dateien editieren.

    mfg Thomas

    Ali Hussein sagt:

    Hallo,

    danke für dein Antwort. Also Channels erstelle ich, aber Token bekomme ich nicht.

    Hier ist meine Seite: http://index.yoursponsoring.de/channel/updateTsChannel.php
    Hier ist PHPmyadmin: http://abload.de/img/1z9kif.png
    Hier ist Config daten: http://abload.de/img/2ppjrl.png

    Bitte und Hilfe. Und ich werde bald Spenden.

    Danke nochmal

    Thomas sagt:

    Hallo Ali,

    Die Channels werden anscheinend in der Datenbank nicht angelegt. Ob sie am Server angelegt werden, kann ich nicht sagen. Aber nachdem auch kein Token kommt, wird das wohl auch nicht funktionieren. Das müsste ich mir mit dir zusammen mal genauer ansehen. Vielleicht mal auf deinem TS, wenn du Zeit hast.

    mfg Thomas

    Ali Hussein sagt:

    Hallo,

    Ja Klar. Hier ist mein Teamspeak IP: 5.231.49.123
    wäre nett wenn du das machst. Werbung + Spende würde ich auch machen.

    Vielen Dank

    Crystal sagt:

    ich habe ein problem er erstellt ein channel aber
    nicht ein token und channel erstellt er nicht da wo er soll

    Thomas sagt:

    Hallo, so kann ich da wenig dazu sagen. Schreib ein Ticket, dann helfe ich dir bei der Einrichtung.
    mfg Thomas

    HerrAusragend sagt:

    Erstmal Danke, dass Sie das Script kostenlos zur Verfügung stellen. Ich bekomme aber immer die Fehlermeldung „Ein Fehler ist aufgetreten: ErrorID: 1796 | Message: currently not possible“. Die Tabelle heißt „Teamspeak“ und die Verbindungsdaten zum TS3 und der MySQL Datenbank stimmen auch.

    Ich weiß mir nicht zu helfen.

    Thomas sagt:

    Hallo,

    Die Meldung kommt vom Teamspeak Server. Versuch mal mit dem Query Login per Telnet einen Channel anzulegen. Ob du da die gleiche Meldung wirst.

    mfg Thomas

    HerrAusragend sagt:

    Komisch. Funktioniert einwandfrei. Im Browser ist allerdings immer noch die Fehlermeldung

    Thomas sagt:

    Schick mir die URL und die Meldung einfach mal per E-Mail. Dann schau ich mir das gerne an.

    mfg Thomas

    Nakooe sagt:

    Hi thomas ich habe das gleiche Problem wie der „HerrAusragend“ habe alle settings doppelt und dreifach überprüft. ich bekomme die fehler meldung 1796 und mit der mysql daten bank habe ich gecheckt indem ich einfach mal ne zahl rausgenommen habe und sagte er das er kein zugriff hat alles klapt alles mit der mysql datenbank habe auch die richtige ip eingegben mit dem

    serveradmin und das automatisch generierte pw ……

    habe auch den server neu aufgesetzt.

    ich bin zu dem schluss gekommen das irgendwelche rechte fehlen die man noch auf dem server eintragen muss. wäre nett wenn du helfen könntest

    mfg nakooe

    ps: ich habe einen eigenen rootserver kein gesponsorten.. sollte ich alle rechte haben 🙂

    http://85.25.201.89/ts/createTsChannel.php

    Thomas sagt:

    Hallo Nakooe,

    Schau dir mal Zeile 27 an:
    Wenn da cid, statt id am Ende steht, bitte ausbessern (hab mich eine anderer Nutzer des Scripts drauf hingewiesen. 🙂
    $sql_befehl = ‘SELECT * FROM ‘.$datenbank_tabelle.’ ORDER BY cid;’;

    mfg Thomas

    Nakooe sagt:

    Hi dan bin ich wieder so habe in der updateTDChannel.php

    in der zeile stand
    $sql_befehl = ‚SELECT * FROM Teamspeak ORDER BY id;‘; habe die id in cid geändert ohne erfolg dann habe ich mal die habe alles mal ausgetauscht und das eingefügt was du gepostet hast
    in der zeile 27 ist nun

    $sql_befehl = ‘SELECT * FROM ‘.$datenbank_tabelle.’ ORDER BY cid;’;

    drin

    und auch ohne erfolg 🙂 bekomme die gleiche fehler meldung

    habe mal ne text datei gemacht kannst dir ja mal anschauen wenn du magst 🙂
    oder wenn du zeit hast besuche mich einfach im teamspeak
    http://85.25.201.89/ts/hier.txt

    ts ip ist 85.25.201.89 🙂 freue mich auf eine rückantwort.

    mfg nakooe

    Thomas sagt:

    Hallo Nakooe,

    Geh mal in die create und lösch folgenden Zeilen:

    35: „channel_filepath“ => „files/virtualserver_11/channel_231“,

    dann poste mir den inhalt von der create nochmal.

    mfg Thomas

    Terpo sagt:

    Der Error 1796 hat definitiv mit der CreateTsChannl.php zu tun… scheinbar geht eine der zu setzenden Einstellung nicht mehr, wenn man die Channel Eigenschaften aufs gröbste zusammenkürzt geht es 100%ig.

    /*
    $data = array
    (
    „pid“ => 0,
    „cpid“ => $pchannel,
    „channel_name“ => $chname,
    „channel_description“ => $_POST[‚desc‘],
    „channel_maxclients“ => 0,
    „channel_flag_permanent“ => 1

    );
    */
    Hätte gleich mal noch ne andere Frage, kann man die update PHP Datei direkt im Cronjob angeben oder muss man da noch was speziellen beachten?

    MfG Terpo

    Thomas sagt:

    Hallo Terpo,

    Danke für die Info. Hab das Script auch erst die Tage mal abgeändert für jemanden, der den selben Fehler hatte.

    Die uptade kannst du einfach direkt per cron aufrufen. Das sollte kein Problem sein. Also php davor natürlich und php cli muss installiert sein, das sollte aber bei den meisten Servern sowieso schon drauf sein.

    mfg Thomas

    Julian sagt:

    Ich habe auch das Problem das dort nur „Dein Channel wurde erstellt. Dein token lautet:
    Zur Channel Liste“ kommt also kein Token über ein wenig Hilfe währ ich dankbar ich verzweifle grad

    Thomas sagt:

    Hallo Julian,

    Wahrscheinlich ist die ID vom neuen Channel nicht richtig. Wenn der Channel richtig erstellt wurde sieh dir den Code an in der „createChannel“ der dann die Channel Infos ausließt (u.A. auch den Token). Wenn das CHannel im TS garnicht erscheint, dann stell sicher, dass die Parent Channel ID richtig eingestellt ist (oder 0), oder löschen von den Optionen zur Erstellung (großes Array) einfach alles, was du nicht brauchst.

    mfg Thomas

    Julian sagt:

    Hallo,
    erstmal danke für die Antwort… Ich hab alles durchsucht und habe auch die Optionen zur Erstellung absolut minimiert und dennoch der Channel wird in TS erstellt klapt alles aber ich bekomme keinen Token und in der Liste steht auch kein Channel der irgendwann ausläuft aber in der Datenbank sehe ich denn Eintrag wo steht ChannelID XY etc. .
    Würde mich über erneute Hilfe freuen.

    Gruß Julian

    Thomas sagt:

    Da war noch irgend ein Fehler bei der Übergabe der Channel ID an den Befehl zur Erstellung des Tokens. Melde dich mal bei Skype, dann helfe ich dir gerne weiter.

    mfg Thomas

    Sebastian sagt:

    Also hab den gleichen Fehler Ein Fehler ist aufgetreten: ErrorID: 1796 | Message: currently not possibleZur Channel Liste

    Und weiß mir nun keinen Rat, zudem ich mir auch nicht sicher bin ob ich die Datenbank auch richtig angelegt habe.
    Hier ein Bild meiner Datenbank http://www.directupload.net/file/d/3513/6b4dtevi_png.htm
    ist sie soweit richtig angelegt?

    MfG Sebastian

    Thomas sagt:

    Hallo Sebastian, das Script ist leider schon etwas älter und ich hatte nie Zeit, das mal zu überarbeiten 🙂
    Versuch mal in der create, alle Einstellungen aus dem Feld zu löschen, die du nicht brauchst und sieh dir die anderen Antworten durch. Da müsste schon alles stehen.

    Ich werde das Script mal aktualisieren, damit es wieder ohne Anpassung funktioniert und die Tage nochmal hochladen.

    mfg Thomas

    Sebastian sagt:

    Hi Thomas danke für die schnelle antwort, ich hab mir in der Nacht (heute morgen) mir die anderen Antworten angeschaut und mh ja 😀 ich kam nicht weiter es kamen immer andere Fehlermeldungen dann ^_^ die hier auch noch nicht drinne standen…ein Update deines Scriptes wäre echt super und wenn du vielleicht Zeit finden würdest für ein kurzes Videotutorial dazu zu machen fände ich auch nicht so schlecht, denn Bildmaterial sagt manchmal mehr aus als 1000 Worte :).

    Mit freundlichen Gruß
    Sebastian

    ps: den anderen Post kannst du löschen ^_^ hatte den Antwortpfeil übersehen..sorry

    Pascal sagt:

    Schon ein bisschen dummgelaufen, wegen Chaturbate?! xDD

    Sebastian sagt:

    Hi Thomas danke für die schnelle antwort, ich hab mir in der Nacht (heute morgen) mir die anderen Antworten angeschaut und mh ja 😀 ich kam nicht weiter es kamen immer andere Fehlermeldungen dann ^_^ die hier auch noch nicht drinne standen…ein Update deines Scriptes wäre echt super und wenn du vielleicht Zeit finden würdest für ein kurzes Videotutorial dazu zu machen fände ich auch nicht so schlecht, denn Bildmaterial sagt manchmal mehr aus als 1000 Worte :).

    Mit freundlichen Gruß
    Sebastian

    Pascal sagt:

    Hey, ich habe keine Ahnung von PHP. Kann halt nur die Datein ändern/ anpassen (Port, PW und so).
    Kann mir wer beim Einrichten helfen?

    Mit freundlichen Grüßen Pascal

    PokeDexsh3r0x sagt:

    Hi bei mir funktioniert das Script irgendwie nicht richtig.
    Er erstellt den Channel & gibt mir das Token aus und mein Ts3 Löscht den Channel danach wieder.
    Ich hoffe jemand kann mir da weiterhelfen.

    Meldung aus dem Logg:

    query client connected ’serveradmin from 127.0.0.1:56400′(id:1)
    channel ‚test2′(id:152) created by ’serveradmin from 127.0.0.1:56400′(id:1)
    client ’serveradmin from 127.0.0.1:56400′(id:1) added privilege key for channelgroup ‚Channel Admin'(id:13) and channel ‚test2′(id:152)
    query client disconnected ’serveradmin from 127.0.0.1:56400′(id:1) reason ‚reasonmsg=deselected virtualserver‘
    channel ‚test2′(id:152) deleted by ’server'(id:0)

    Gruss sh3r0x

    Thomas sagt:

    Ich denke, du hast Flag permanent nicht drin, damit wird der Channel gelöscht, wenn der Channel leer ist.
    Ändere das in der create php Datei in dem Optionenfeld.

    mfg Thomas

    Florian sagt:

    Hallo Tomas,

    ich habe ein problem mit dem script.
    kannst du mir vil. helfen findest mich eigentlich immer auf
    meinen TeamSpeak server ip ist crocl.de

    Thomas sagt:

    Hallo Florian,
    Sorry, mir fehlt die Zeit, dass ich auf deinen Server komme. Du kannst ein Ticket schreiben.
    mfg Thomas

    Marco sagt:

    Muss mein Teamspeak auf MySQL sein?
    Welche Datenbank muss ich angeben?

    Thomas sagt:

    Das Script braucht eine Extra Datenbank um zu funktionieren. Die musst du irgendwo anlegen.

    mfg Thomas

    Marco sagt:

    Ist es möglich das nur ein user einer bestimmten gruppe einen Channel erstellen kann?

    Thomas sagt:

    Bei dem Script nicht, weil das Script ja nicht weis, welcher User da auf der Webseite ist. Dazu müsste man es um irgendeine Identifizierung erweitern.

    mfg Thomas

    Marco sagt:

    Da ich meinen alten Kommentar nicht editieren kann – Bei mir funktioniert es nicht wirklich …

    Er erstellt den Server und löscht ihn direkt wieder :/ ebenfalls muss ich gestehen das ich keine Ahnung habe was ich mit dem Token machen soll den ich bekomme o.O

    Thomas sagt:

    Der Token ist für die Rechte im Channel. Gelöscht wird er wsl. gleich wieder, weil die Dauer bis zum löschen zu kurz ist, oder nicht beachtet wird. Schau dir mal die config an.

    mfg Thomas

    Marco sagt:

    Also ich hab jetzt versucht was ich konnte und hab es nicht hinbekommen ….

    Habe versucht zu finden wo/wie ich dieses „channel_flag_permanent“ umstellen kann aber nicht mal das habe ich geschafft …

    ebenfalls habe ich alle Datein mal durchgeschaut ob ich da etwas finde was mit eventuell helfen kann – ebenfalls hier habe ich nichts gefunden.

    In die Config sieht wie folgt aus:
    https://gyazo.com/c3c522c9c089c10926b0aad8b4505d4b
    (natürlich zensiert)

    Der Rest wurde nicht verändern.

    Thomas sagt:

    Kann sein, dass vielleicht im Script noch irgendwo etwas nicht ganz stimmt für dein Setup. Hast du die Datenbank auch angelegt? Sonst schreib mal ein Ticket und ich sehr zu, dass ich mal Zeit habe vorbeizukommen.

    mfg Thomas

    Marco sagt:

    Da bin ich wieder,

    kann es daran liegen das keine Datenbank Tabelle erstellt wurde?

    Wenn ja – Wie erstelle ich eine Datenbank mit diesen Werten wie oben beschrieben? Hast du da eventuell einen SQL code zum Copy&Pasten?

    Thomas sagt:

    Wenn im ZIP keine dabei ist, dann nicht. Aber es ist nur name und zeit, oder so. Du solltest die notwendigen Felder in der create-Datei finden, wo der Eintrag angelegt wird.

    mfg Thomas

    Marco sagt:

    Hab da mal rein geschaut und habe folgende Zeile geändert:

    „pid“ => $ts3_parent_channel_id,
    „channel_name“ => $_POST[’name‘],
    „channel_description“ => $_POST[‚desc‘],
    „channel_password“ => $_POST[‚password‘],

    dort dran gesetzt:

    „channel_flag_permanent“ => 1

    Problem hierbei ist das ich keine Datenbank dafür habe da ich nicht weiß wie ich diese Anlegen soll.

    Ebenfalls bekomme ich nun keinen Token ausgegeben …

Kommentare geschlossen