You are not logged in.

Dear visitor, welcome to sourceserver.info. If this is your first visit here, please read the Help. It explains in detail how this page works. To use all features of this page, you should consider registering. Please use the registration form, to register here or read more information about the registration process. If you are already registered, please login here.

  • "Ichhoernchen" started this thread

Posts: 12

wcf.user.option.userOption53: Ja

  • Send private message

1

Thursday, July 3rd 2014, 4:55pm

Frage zu PHP HL² Server-Query Script

Hallo zusammen,

hoffe ich bin im richtigen Forum gelandet. Ich bin derzeit dabei eine Homepage aufzusetzen und bin auf folgendes Problem bei dem hier [[url]http://sourceserver.info/wiki/tutorial/server/php_querry_script[/url]] beschriebenen Server-Script gestoßen.
Das Script läuft wunderbar, wenn aber ein Server offline oder nicht erreichbar ist stürzt der komplette Webserver unseres Root-Servers (Linux) ab. Es ist somit keine Webseite mehr erreichbar und man muss den Apache Server neustarten.

Vielen Dank
Ichhoernchen

This post has been edited 3 times, last edit by "Ichhoernchen" (Jul 3rd 2014, 5:01pm)


Cutti

Beginner

Posts: 32

Location: Köln

wcf.user.option.userOption53: Ja

  • Send private message

2

Thursday, July 3rd 2014, 8:15pm

Ich behaupte der Apache stürzt nicht ab, er hängt nur ewig an dem Scirpt fest. Hierzu mal in der Konfiguration von php nach max_execution_time schauen.

Das Problem ist, dass er bei udp-Verbindungen nicht feststellt wenn keine Verbindung aufgebaut wurde.

Man könnte also zum Test erst eine tcp-Verbindung aufbauen und wenn die klappte, die udp-Verbindung.

Ich hab das mal (schnell und schmutzig) in das von dir genannte Script ein gebaut.

PHP Source code

1
2
3
4
5
6
7
8
      // Verbindung zum Server aufbauen
      function connect() {
        $this->fp fsockopen("tcp://".$this->ip$this->port$errno$errstr3);
        if (!$this->fp) {
          die("offline");
        }
        $this->fp fsockopen("udp://".$this->ip$this->port$errno$errstr3);
      }

  • "Ichhoernchen" started this thread

Posts: 12

wcf.user.option.userOption53: Ja

  • Send private message

3

Sunday, July 13th 2014, 2:54pm

Danke für deine Antwort!

An sich funktioniert dein Code, nur leider baut er die Seite dann nicht richtig auf. Er listet so viele Server bis er auf einen Server stoßt der offline ist, siehe hier.
Wenn man das noch umgehen könnte und möglicherweise ein Bild anzeigen lassen könnte wenn der Server offline ist, wäre alles top :P

Vielleicht hast du/noch jemand einen Vorschlag!

MadMakz

Super Moderator

Posts: 1,878

Location: ~#

wcf.user.option.userOption53: Ja

  • Send private message

4

Sunday, July 13th 2014, 4:45pm

Ersetz das die("offline"); mit einem return, continue; o.ä., jedenfalls nix mit die; oder exit; sondern einem sinnvollen handle.

Cutti

Beginner

Posts: 32

Location: Köln

wcf.user.option.userOption53: Ja

  • Send private message

5

Monday, July 14th 2014, 12:30pm

Damit ist es dann noch nicht ganz getan ...

Als erstes connect ändern:

PHP Source code

1
2
3
4
5
6
7
8
9
      // Verbindung zum Server aufbauen
      function connect() {
        $this->fp fsockopen("tcp://".$this->ip$this->port$errno$errstr3);
        if (!$this->fp) {
          return false;
        }
        $this->fp fsockopen("udp://".$this->ip$this->port$errno$errstr3);
        return true;
      }


Dann noch infos verändern:

PHP Source code

1
2
3
4
      // Infos vom Server holen
      function infos() {
        $connect=$this->connect();
        if (!$connect) return false;


In deinem Script, wo du die Server anzeigst, müsstest dann noch eine Abfrage einbauen, in der Art:

PHP Source code

1
2
3
4
5
6
7
8
9
$infos $verbindung->infos();
if ($infos)
{
     // Server anzeigen
}
else
{
     // Offline anzeigen oder nichts anzeigen
}

  • "Ichhoernchen" started this thread

Posts: 12

wcf.user.option.userOption53: Ja

  • Send private message

6

Friday, July 25th 2014, 12:11pm

Nochmals danke für die Antworten, ich werde das ganze heute Abend ausprobieren und Feedback geben!

  • "Ichhoernchen" started this thread

Posts: 12

wcf.user.option.userOption53: Ja

  • Send private message

7

Monday, August 4th 2014, 10:29am

Funktioniert wunderbar, vielen Danke für eure Bemühungen!! :)