for schleife läuft nicht richtig durch

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • for schleife läuft nicht richtig durch

    HiHo,

    Für die Firma benötige ich ein kleines Script das prüft ob die Server Online bzw Offline sind.
    Soweit läuft es auch, sollten aber mehr wie 2 Server online bzw Offline sein zeigt er nur den Letzten an.

    Irgendwas scheint da in der for Schleife nicht zu funktionieren und ich sehe den Wald vor Lauter bäumen nicht.

    Quellcode

    1. $server_offline = '';
    2. $server_online = '';
    3. $server[1][] = ""; // Server 1, zum beispiel $server[1][] = "www.server1.com";
    4. $server[2][] = ""; // Server 2
    5. $server[3][] = ""; // Server 3
    6. $count = count($server) + 1;
    7. for ($i = 1; $i < $count; $i++) {
    8. if ($this->serverping($server[$i][0], 80)) {
    9. $server[$i][1] = true;
    10. $server_online = '<tr><td>&nbsp;Server ' . $i . ':</td>
    11. <td>&nbsp;<img src="./theme/images/online.png" width="16" height="16"></td></tr>';
    12. }
    13. else {
    14. $server_offline = '<tr><td>&nbsp;Server ' . $i . ':</td>
    15. <td>&nbsp;<img src="./theme/images/offline.png" width="16" height="16"></td></tr>';
    16. }
    17. }
    18. $Smarty->assign(array(
    19. 'LANG' => $lang,
    20. 'SERVER_ONLINE' => $server_online,
    21. 'SERVER_OFFLINE' => $server_offline,
    22. ));
    Alles anzeigen


    Quellcode

    1. <table class="sidebar_table">
    2. {$SERVER_OFFLINE}
    3. {$SERVER_ONLINE}
    4. </table>
  • Innerhalb der Schleife gibt es keine Ausgabe und die Variablen $server_online & $server_offline sind keine Arrays ;)

    Quellcode

    1. for ($i = 1; $i < $count; $i++) {
    2. if ($this->serverping($server[$i][0], 80)) {
    3. $server[$i][1] = true;
    4. $server_online[] = '<tr><td>&nbsp;Server ' . $i . ':</td>
    5. <td>&nbsp;<img src="./theme/images/online.png" width="16" height="16"></td></tr>';
    6. }
    7. else {
    8. $server_offline[] = '<tr><td>&nbsp;Server ' . $i . ':</td>
    9. <td>&nbsp;<img src="./theme/images/offline.png" width="16" height="16"></td></tr>';
    10. }
    11. }
    Alles anzeigen
  • HiHo,

    So nach einer kurzen Pause und deinen Tips haut es weiterhin nicht hin.
    Mit deinem Code gibt er mir nur Array Array aus.
    Soweit finde ich aber auch keinen Fehler mehr warum er nur den letzten Server Ausgibt der Online bzw Offline ist. Evtl war ja auch der ganze Ansatz falsch. Mal schauen wie ich das nun mache.
  • Du müsstest dann natürlich deine Ausgabe im Template mit einer Schleife erweitern.

    Oder direkt als String verketten.

    Quellcode

    1. $server_online = '';
    2. $server_offline = '';
    3. for ($i = 1; $i < $count; $i++) {
    4. if ($this->serverping($server[$i][0], 80)) {
    5. $server[$i][1] = true;
    6. $server_online .= '<tr><td>&nbsp;Server ' . $i . ':</td>
    7. <td>&nbsp;<img src="./theme/images/online.png" width="16" height="16"></td></tr>';
    8. }
    9. else {
    10. $server_offline .= '<tr><td>&nbsp;Server ' . $i . ':</td>
    11. <td>&nbsp;<img src="./theme/images/offline.png" width="16" height="16"></td></tr>';
    12. }
    13. }
    Alles anzeigen