Page 1 of 1

PHP Online Server Status

Posted: Sun 7. Nov 2021, 12:00
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.

Re: PHP Online Server Status

Posted: Sun 7. Nov 2021, 12:59
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.

Re: PHP Online Server Status

Posted: Sun 7. Nov 2021, 13:42
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.

Re: PHP Online Server Status

Posted: Sun 7. Nov 2021, 14:02
by Tobi
Na dann nehme ich alles zurück und behaupte das Gegenteil.

Re: PHP Online Server Status

Posted: Sun 7. Nov 2021, 14:28
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..