PHP Online Server Status

For topics beyond KeyHelp. / Für Themen jenseits von KeyHelp.
Post Reply
TuXi

PHP Online Server Status

Post by TuXi »

Code: Select all

<?php 
$ip = "127.0.0.1"; 
$port = "6667"; 
if (! $sock = @fsockopen($ip, $port, $num, $error, 5)) 
echo '<strong><font color="#FF0000">Offline</font></strong>'; 
else{ 
echo '<strong><font color="#00CC00">Online</font></strong>'; 
fclose($sock); 
} 
?>
Ich habe damit zur Zeit Probleme, wenn ich es in "mehr" als 2 Zeilen und in der letzten Spalte in einer Tabelle hinzufüge.
Dann wird die Tabelle zwar noch angezeigt aber, nur wird eine einzige Zeile angezeigt und der "offline" und "online" Status nicht mehr.
Und dieses Problem hatte ich sonst nie und ist auch mit der PHP 7.3 und gerade da hat es "immer" ohne Probleme funktioniert.

Spricht: An der PHP 7.4.25 kann es nicht liegen, ich habe das jetzt maximal nur 2x und dann:

Code: Select all

<?php

    //Basic configuration
    $sip = "127.0.0.1";    //server IP
    $sport = "6667";         //server PORT

    if(realm_status($sip, $sport) === false)
    {
        //echo '<img title="OFFLINE" alt="OFFLINE" src="offline.gif">';
        echo '<strong><font color="#FF0000">Offline</font></strong>';
    }
    else if(realm_status($sip, $sport) === true)
    {
        //echo '<img title="ONLINE" alt="ONLINE" src="online.gif">';
        echo '<strong><font color="#00CC00">Online</font></strong>';
    }
    //Function to check if the provided IP and PORT is reachable
    function realm_status($host, $port)
    {
        error_reporting(0);
        $etat = fsockopen($host,$port,$errno,$errstr,3);
                    
        if(!$etat)
        {
            return false;
        }
        else
        {
            return true;
        }
    }
?>
Und

Code: Select all

<?php
$ip = "127.0.0.1";
$port = "6667";
$timeout = "10";
if ($ip and $port and $timeout)
{
$rootserver = @fsockopen("$ip", $port, $timeout);
}
if($rootserver)
{
echo '<strong><font color="#00CC00">Online</font></strong>';
}
else
{
echo '<strong><font color="#FF0000">Offline</font></strong>';
}
?>
Ich möchte aber gerne wieder 4x das erst genannte haben.
User avatar
Tobi
Community Moderator
Posts: 2812
Joined: Thu 5. Jan 2017, 13:24

Re: PHP Online Server Status

Post by Tobi »

Du prüfst nur ob es die Variable „rootserver“ gibt.

Je nach PHP Version, ich meine seit 7.4, wird bei deiner Prüfung ein „false“ zu einem „true“ 😉.

Bei der Prüfung „if ($rootserver)“ ist auch das Ergebnis „false“ ein gültiges Ergebnis. Somit gibt es die Variable $rootserver mit dem Wert „false“ und der Server ist wundersamer Weise immer online.
Gruß,
Tobi


-----------------------------
wewoco.de
Das Forum für Reseller, Digital-Agenturen, Bildschirmarbeiter und Mäuseschubser
TuXi

Re: PHP Online Server Status

Post by TuXi »

@Tobi, sorry aber.
Du bist gerade komplett auf dem falschen Dampfer.

Es geht um ganz oben das erste.

Code: Select all

<?php 
$ip = "127.0.0.1"; 
$port = "6667"; 
if (! $sock = @fsockopen($ip, $port, $num, $error, 5)) 
echo '<strong><font color="#FF0000">Offline</font></strong>'; 
else{ 
echo '<strong><font color="#00CC00">Online</font></strong>'; 
fclose($sock); 
} 
?>
Das habe ich auch so geschrieben gehabt.

Und des Weiteren biste im unrecht, weil:

Code: Select all

<?php
$ip = "127.0.0.1";
$port = "6667";
$timeout = "10";
if ($ip and $port and $timeout)
{
$rootserver = @fsockopen("$ip", $port, $timeout);
}
if($rootserver)
{
echo '<strong><font color="#00CC00">Online</font></strong>';
}
else
{
echo '<strong><font color="#FF0000">Offline</font></strong>';
}
?>
Funktioniert aber, um dieses Script geht es nicht sondern um das "erst" genannte.
User avatar
Tobi
Community Moderator
Posts: 2812
Joined: Thu 5. Jan 2017, 13:24

Re: PHP Online Server Status

Post by Tobi »

Na dann nehme ich alles zurück und behaupte das Gegenteil.
Gruß,
Tobi


-----------------------------
wewoco.de
Das Forum für Reseller, Digital-Agenturen, Bildschirmarbeiter und Mäuseschubser
TuXi

Re: PHP Online Server Status

Post by TuXi »

Code: Select all

<?php 
$ip = "127.0.0.1"; 
$port = "6667"; 
if (! $sock = @fsockopen($ip, $port, $num, $error, 5)) 
echo '<strong><font color="#FF0000">Offline</font></strong>'; 
else{ 
echo '<strong><font color="#00CC00">Online</font></strong>'; 
fclose($sock); 
} 
?>
Funktioniert jetzt ganz plötzlich doch wieder :? Ich möchte zu gerne wissen, warum jetzt plötzlich wieder..
Post Reply