Suche Hilfe bei EInbindung der SampQueryApi.php

  • Hallo
    Ich komme nicht weiter, ich wil mal eine kleine Seite machen, wo man etwas mit seinen Server'n machen kann ;)


    So sieht mein Code (PHP) bisher aus


    Aber wenn ich nun auf localhost/sa-mp-s/index.php gehe,
    Spuckt er mir nen Fehler aus,
    DIesen :


    PHP
    Warning: fsockopen() expects parameter 2 to be long, string given in H:\XAMPP\htdocs\Sa-Mp-S\query\SampQueryAPI.php on line 42


    Was bedeutet das ?
    Weis nicht was mit fsopckopen gemaint ist ;)


    PS: Das hier ist die Zeile aus der "SampQueryApi.php

    PHP
    $this->rSocket = fsockopen('udp://'.$this->aServer[0], $this->aServer[1], $iError, $sError, 2);



    MFG
    Ololberto

    Stahlbau Azubi deswegen kaum Aktiv

  • mit fsockopen wird ein socket geöffnet, in diesem fall zur verbindung mit dem server
    allerdings ist parameter 2, also der port fehlerhaft. Was gibst du den als port an?
    //edit: das hier ist dein fehler:

    PHP
    $port = $_POST['port'];
            $port = htmlspecialchars(addslashes($port));


    htmlspecialcharsund addslashes gibt strings zurück, aber fsockopen will bei dem port einen int haben
    besser wäre es so:

    PHP
    if(is_numeric($_POST['port'])){
    $port = $_POST['port'];
    }
  • Als Port wird bei der Form angegeben, einmal die IP und dann der PORT
    Und dann sollen da einige Infos zum Server kommen, die ich mit der API ausgeben will


    //E
    Immernoch der Gleiche fehler,
    Trotz

    PHP
    if(is_numeric($_POST['port'])){
    $port = $_POST['port'];
    }



    //EDIT
    Kann mir denn niemand Helfen ?

    Stahlbau Azubi deswegen kaum Aktiv

    Einmal editiert, zuletzt von Raphael.K ()

  • PHP
    $port = $_POST['port'];
    $port = intval(htmlspecialchars(addslashes($port)));


    intval macht aus dem string ein int, probier das mal aus. (nicht ausprobiert)

  • Das hat nichts mit dem Problem zu tun..
    Die Lösung ist einfach die:

    PHP
    $server = new SampQueryAPI($ip, $port);


    Variablen entweder garnicht oder in doppelte Quotes schreiben.

    Joa, aber das wäre zu einfach :D

  • Also zwei Lösungsvorschläge haste jetzt schon bekommen :)