[Problem] Server Status Abfrage (Port ping) mit tabellen design

freddy55

Grünschnabel
Hallo allerseits.
ich habe ein Problem mit einem script, dass ich in die index.php include.

Auszug von der index.php:
PHP:
<!-- Serverstatus -->
        <div class="login_top">
        	Serverstatus
        </div>
        <div class="login_main">
		
	<?php
	//include "php/status.php";
	?>
	</div>

        <div class="login_bottom"></div>

Auszug von der status.php:
PHP:
$serverip = "***.***.***.***";
        $ip = gethostbyname($serverip);
        $portlist=array(1,2, 3, ); // Den port den ihr sehen wollt
        $status=array("Login Server", "Char Server", "World Server");  // Bezeichnung
        $i=0;

    foreach  ($portlist as $port){
    echo "".$status[$i]."";
        $online = @fsockopen($ip, $port, $errno, $errstr, 1);
    if (!$online)
    {
        echo "<td><img src=img/offline.gif width=16 height=12 /></td>"; #

    }
    else
    {
        echo "<td><img src=img/online.gif width=16 height=12 /></td>";
    }
        @fclose($online);
        $i++;
    }
Und ich möchte gerne dieses Design mit der Abfrage verbinden:
HTML:
<!--Style-->
                <table width="100%" border="0" class="serverstatus_bg">
                                <tr>
                                        <td class="serverstatus_top">Eros</td>
                                </tr>
 
                                <tr>
                                <td class="serverstatus_td"><font color="#447c1f">&bull; Loginserver</font></td>
                                </tr>
                                <tr>
                                <td class="serverstatus_td"><font color="#447c1f">&bull; Charakterserver</font></td>
                                </tr>
                                <tr>
 
                                <td class="serverstatus_td"><font color="#447c1f">&bull; Worldserver</font></td>
                                </tr>
                                <tr>
                                <td class="serverstatus_td"><font color="#b42a2a">&bull; MySQL</font></td>
                                </tr>
                        </table>
So würde das dann ungefähr aussehen:
status_index.png

In dem Abschnitt auf dem Bild, findet keine wirkliche Abfrage statt. Es dient nur der Veranschaulichung!

Ich hoffe es ist verständlich genug.

Meine Frage dazu:
Wie verknüpfe ich die Abfrage mit der Tabelle?

Mit freundlichen Grüssen,
freddy55

PS: Bin relativ neu, im HTML/PHP Bereich.
 
Zuletzt bearbeitet:
Hallo und willkommen auf tutorials.de

Zu deiner Frage habe ich eine Gegenfrage: Ist die Tabelle fix in der index.php hinterlegt? Wenn ja, wäre es das einfachste, wenn man in der status.php sich in einem Array merkt, welchen Status welcher Port hat und dies dann in der Tabelle hinterlegt. Hier ein Beispiel für die status.php:

PHP:
    $serverip = "***.***.***.***";
    $ip = gethostbyname($serverip);
    $portlist=array(1,2, 3, ); // Den port den ihr sehen wollt
    $status=array("Login Server", "Char Server", "World Server");  // Bezeichnung
    $i=0;

    $statusErgebnisse = array();

    foreach  ($portlist as $port)
    {
        $online = @fsockopen($ip, $port, $errno, $errstr, 1);

        if (!$online)
        {
            $statusErgebnisse[$status[$i]] = 'offline';
        }
        else
        {
            $statusErgebnisse[$status[$i]] = 'online';
            @fclose($online);
        }
        $i++;
    }

Dann in der index.php macht man die Ausgabe mit den Werten, die man sich gemerkt hat:

PHP:
                        <table width="100%" border="0" class="serverstatus_bg">
                                <tr>
                                        <td class="serverstatus_top">Eros</td>
                                </tr>
 
                                <?php foreach($statusErgebnisse as $serverName => $status): ?>
                                <tr>
                                        <td class="serverstatus_td"><font color="#447c1f">&bull; <?php echo $serverName; ?> <img src="img/<?php echo $status;?>.gif" width=16 height=12 /></font></td>
                                </tr>

                                <?php endforeach; ?>
                        </table>
 
Gern. Eine Bitte: Wir hier auf tutorials.de haben ein "Erledigt"-System, so dass man jedem mitteilen kann, das es zu dem Thema keine weiteren Fragen gibt. Wenn deine Fragen alle beantwortet sind, klick doch bitte auf den Haken neben "Auf Thema antworten" unter am Thread-Ende.

Danke und Grüße
 

Neue Beiträge

Zurück