Community Forums Today's Posts     Member List     Archive    
Results 1 to 10 of 10
  1. #1
    Join Date
    Apr 2005
    Location
    Ger
    Posts
    4

    Auf TS mit PHP zugreifen

    Also ich würde gerne mit PHP auf meinen TS Server zugreifen und so speziele Server starten stoppen etc.(Nein ich möchte nicht das TS Webinterface nutzen!). Problem an der Sache ist nur, dass die von PHP gesendeten im TS nicht ausgeführt werden.(Ja ein Socket ist offen und verbunden und es gab keine Errormeldungen) Es werden also alle Daten übertragen aber nichts passiert.
    Muss man die übertragenen Daten mit einem bestimmten Zeichen abschließen o.ä.?

  2. #2
    Join Date
    Dec 2003
    Location
    48°58′0″N 10°7′0″E
    Posts
    1,082
    Poste doch mal das Script? Verbindest du dich per Telnet?

    p.s.: Eigendlich gehören solchen dinge ins Webpost / Scripts Forum.

    MfG,
    Michael

  3. #3
    Join Date
    Apr 2005
    Location
    Ger
    Posts
    4
    PHP Code:
    $ts_socket socket_create(AF_INETSOCK_STREAMSOL_TCP);
        
        if (
    $ts_socket == FALSE) {

            echo 
    "Error1:".socket_strerror(socket_last_error($ts_socket));
            
        } else {

            
    $ts_socket_connectet socket_connect($ts_socketlocalhost10000);
            
            if (
    $ts_socket_connectet == FALSE) {

                echo 
    "Error2:".socket_strerror(socket_last_error($ts_socket));
                
            } else {

                
    $msg "slogin superadmin meinpw\n";
                
    $e socket_write($ts_socket$msgstrlen($msg));
                
    $msg "serverstart " $server_id "\n";
                
    $e socket_write($ts_socket$msgstrlen($msg));
                print 
    socket_strerror(socket_last_error());

                
            }
            
        }
        
        
    socket_close($ts_socket); 
    Das ist mein Scrip, es verbindet sich und führt angeblich die Befehle aus, aber der Server reagiert halt nicht drauf.

    Wenn ich mich mit Telnet verbinde geht alles wunderbar.

  4. #4
    Join Date
    Nov 2002
    Location
    Germany / Kempen
    Posts
    1,844
    Ich kenne mich mit solchen Sachen nicht besonders gut aus, aber könnte es sein, dass du etwas vergessen hast? Wenn ich via Telnet verbinde, dann drücke ich bei erfolgter Verbindung ersteinmal Enter, da die erste Eingabe nie akzeptiert wird. Erst die Zweite Eingabe wird akzeptiert. Ich weiß nicht wie sich das via PHP verhält, aber du könntest es ja mal ausprobieren.

  5. #5
    Join Date
    Jan 2003
    Location
    Germany
    Posts
    4,140
    Du mußt auch warten bis ein "OK" oder "ERR" zurückkommt. Erst dann weißt du, daß du einen neuen Befehl absetzen kannst.

  6. #6
    Join Date
    Apr 2005
    Location
    Ger
    Posts
    4
    Ja gibt es denn eine Möglichkeit die Befehle im Hintergrund laufen zu lassen?

  7. #7
    Join Date
    Jan 2003
    Location
    Germany
    Posts
    4,140
    Meinst du nebenläufig? Nein.

  8. #8
    Join Date
    Apr 2005
    Location
    Ger
    Posts
    4
    Mh k, mit nem Delay geht es. Aber es wäre halt noch ne Ecke schöner wenn es Nebenläufig ginge. Aber danke schonmal.

  9. #9
    Join Date
    Jan 2003
    Location
    Germany
    Posts
    4,140
    Delay ist eine schlechte Idee. Warte doch einfach auf ein "OK" bzw. "ERR", das ist viel sicherer.

  10. #10
    Join Date
    Oct 2004
    Location
    Germany
    Posts
    1,710
    Vielleicht hilfts dir ja:
    Ich benutze folgende Funktionen (leicht abgewandelt) um mit einem TS-Server zu kommunizieren, wobei $sCon meine Socketverbindung ist die ich vorher mit fsockopen($ip, $tcp); zum TS-Server geöffnet habe:
    PHP Code:
        function _call($sCall "") {
                    global 
    $sCon;
            if (!
    is_resource($sCon))
                return 
    false;
            
    $sCall chop($sCall);
            
    fwrite($sCon"$sCall\n");
            
    $sRead '';
            do {
                
    $cRead fgets($sCon);
                
    $sRead .= $cRead;
            } while (
    $cRead != "[TS]\r\n" && $cRead != "OK\r\n" && strtoupper(substr($cRead05)) != "ERROR");
            return 
    $sRead;
        } 

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Similar Threads

  1. »»» FAQ - TS 2.x Server
    By Michael in forum [TeamSpeak 2] Server Support
    Replies: 158
    Last Post: 29-12-2009, 23:20
  2. Step by Step - TS-Stats für die HP mit PHP
    By MW_Crow in forum [TeamSpeak Classic] General Questions
    Replies: 5
    Last Post: 06-07-2002, 02:25

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •