Zum Inhalt springen

ServerStatus Html Code fehler!


T-Offline

Empfohlene Beiträge

Was mach ich falsch?

<html>

<head>

<title>Server-Status</title>

</head>

<body>

<table border="1">

<?php

$fp = @fsockopen("10.71.6.15",80,&$errno,&$errstr,2);

#if(!$fp)

{

echo <tr><td width="100">Server 1 ist</td><td width="100"><font color="red">offline</font></td></tr>;

}

else

{

echo <tr><td width="100">Server 1 ist</td><td width="100"><font color="green">online</font></td></tr>;

}

?>

</table>

</body>

</html>

############ Frage #############

Warum werden 2 Zeilen (Einmal Online ... Offline) angezeigt, das sollte eingendlich in einer zeile stehen?

und warum kommen oben die fehler.....

Ich versteh das nicht wo liegt der Fehler?

Mit freundlichen Grüßen

T-Offline

Link zu diesem Kommentar
Auf anderen Seiten teilen

OK das mit dem auskommentieren ist schon blöd gelaufen....

Ich stell mich jetzt mal ganz blöd aber warum willste das so schreiben?

Oder steh ich gerade voll auf dem schlauch ... Danke für die Hilfe!

<html>

<head>

<title>Server-Status</title>

</head>

<body>

<table border="1">

<?php

$fp = @fsockopen("127.0.0.1",80,&$errno,&$errstr,2);

if(!$fp)

{

[B]echo '<tr><td width="100">Server 1 ist</td><td width="100"><font color="red">offline</font></td></tr>';[/B]}

else

{

[B]echo '<tr><td width="100">Server 1 ist</td><td width="100"><font color="green">online</font></td></tr>';[/B]

}

?>

</table>

</body>

</html>

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ok da mir das zu Blöd wurde und ihr auch kein html und php gemischt haben wollt :) habe ich mir mal ein PhP Script zusammen gebaut.

<?php
$info["address"]="127.0.0.1";
$info["port"]="80";
$timeout = 2;
$filetyp="gif";
$pic_online="online.gif";
$pic_offline="offline.gif";
$fp = @fsockopen ($info["address"], $info["port"], $errno, $errstr, $timeout);
if($filetyp=="gif")
{
header("Content-Type: image/gif");
if ($fp)
{
$img=imagecreatefromgif($pic_online);
imagegif($img,'',0);
}else{
$img=imagecreatefromgif($pic_offline);
imagegif($img,'',0);
}
}
imagepng($img,'serverstatus.png',0);
imagedestroy($img);
?>[/PHP]

Nun mal eine Frage wie kann ich auf der Selben seite z.b. die ip 127.0.0.2

127.0.0.3

und so weiter auch noch abfragen?

Geht das überhaupt?

Mit freundlichen Grüßen

T-Offline

Link zu diesem Kommentar
Auf anderen Seiten teilen

ohne den code jetzt genauer anzusehen, sieht das doch schon viel besser aus.

und so weiter auch noch abfragen?

Geht das überhaupt?

Mit freundlichen Grüßen

T-Offline

sicher geht das, dazu machst du aus dem $info array ein zweidimensionales array nach der art:


$info = array();

$info[0] = array('address' => '127.0.0.1', 'port' => 80);

$info[1] = array('address' => '127.0.0.2', 'port' => 80);

$info[2] = array('address' => '127.0.0.3', 'port' => 80);

und packst die prüfung und ausgabe in eine schleife.

foreach ($info as $key => $aInfo) {

  $fp = @fsockopen($aInfo["address"], $aInfo["port"], $errno, $errstr, $timeout);

  ... hier dann die ausgabe ...

}

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ok langsam verstehe ich das ganze. So nun noch eins ich will zu jeder ip ein anderes Bild hinterlegen.

Aso ist der code so richtig _n4p_?

<?php
$info = array();
$info[0] = array ('address' => '127.0.0.1', 'port' => 80);
$info[1] = array ('address' => '127.0.0.2', 'port' => 80);
$info[2] = array ('address' => '127.0.0.3', 'port' => 80);
$info[3] = array ('address' => '127.0.0.4', 'port' => 80);
$timeout = 2;
$filetyp="gif";
$pic_online="online.gif";
$pic_offline="offline.gif";
forreach ($info as &key => $aInfo)
{
$fp = @fsockopen ($aInfo["address"], $aInfo["port"], $errno, $errstr, $timeout);
if($filetyp=="gif")
header("Content-Type: image/gif");
if ($fp)
{
$img=imagecreatefromgif($pic_online);
imagegif($img,'',0);
}
else
{
$img=imagecreatefromgif($pic_offline);
imagegif($img,'',0);
}
}
imagepng($img,'serverstatus.png',0);
imagedestroy($img);
?>[/PHP]

Link zu diesem Kommentar
Auf anderen Seiten teilen

dazu würde ich einfach das $info array erweitern, und zwar halt im die information welches bild gewünscht ist. hier bietet sich auch an die bild namen an das programm anzupassen.

zb: on_server1.gif, off_server1.gif

dann kann ins info array folgendes:


$info[1] = array ('address' => '127.0.0.2', 'port' => 80, 'picture' => 'server2');

und in der ausgabe einfach

    if ($fp) 

    {

        $img=imagecreatefromgif('on_'.$aInfo['picture'].'.gif');

        imagegif($img,'',0);

    }

    else

    {

        $img=imagecreatefromgif('on_'.$aInfo['picture'].'.gif');

        imagegif($img,'',0);

    } 

hast du den code mal getestet? so beim ansehen zweifel ich das das funktioniert.

1) sendest du mehrere header, was üblicherweise mit warnungen quittiert wird

2) versuchst du mehrere bilder gleichzeitig zu erstellen.

ich würde empfehlen, die seite in php zu generieren, am liebsten mit einfachen templates. da du die bilder eh nicht zur laufzeit änderst, solltest du auch auf das imagecreate zeugs verzichten.

Link zu diesem Kommentar
Auf anderen Seiten teilen

OK zu 50% deiner antwort versteht ich nur Bahnhof.... Bin nicht so der Programmier.

Wäre nett wenn du mir das ggf. erklären würdest.

Hier der Aktuelle code:

<?php
$info = array();
$info[0] = array ('address' => '127.0.0.1', 'port' => 80, 'picture' => 'server0');
$info[1] = array ('address' => '127.0.0.2', 'port' => 80, 'picture' => 'server1');
$info[2] = array ('address' => '127.0.0.3', 'port' => 80, 'picture' => 'server2');
$info[3] = array ('address' => '127.0.0.4', 'port' => 80, 'picture' => 'server3');
$info[4] = array ('address' => '127.0.0.5', 'port' => 80, 'picture' => 'server4');
$filetyp="gif";
$pic_online="on_server1.gif";
$pic_offline="off_server1.gif";
foreach ($info as $key => $aInfo)
{
$fp = @fsockopen ($aInfo["address"], $aInfo["port"], $errno, $errstr, $timeout);
if($filetyp=="gif")
header("Content-Type: image/gif");
if ($fp)
{
$img=imagecreatefromgif('on_'.$aInfo['picture'].'.gif');
imagegif($img,'',0);
}
else
{
$img=imagecreatefromgif('off_'.$aInfo['picture'].'.gif');
imagegif($img,'',0);
}
}
imagepng($img,'serverstatus.png',0);
imagedestroy($img);[/PHP]

Wie würdest du das machen?

Bin ich wenn schon auf dem Richtigen weg oder bin ich Hoffnugslos?

Vielen Danke für deiner Schnelle und Nette Hilfe

MfG

T-Offline

Bearbeitet von T-Offline
Link zu diesem Kommentar
Auf anderen Seiten teilen

So würde es gehen nur es kommen einfach keine Bilder was macht ich denn Falsch?

Danke für denn link aber ich muss das bis ende der Woche geschafft haben und jetzt noch die ganze seite druch lesen Ufff..

Was ich gelesen habe das Gif seid 1.6 nicht mehr drin ist in der GD deswegen habe ich nun jpeg genommen.

Könntest du noch mal drüber schauen wäre wirklich nett!

<?php
$info = array();
$info[0] = array ('address' => 'ip', 'port' => 80, 'picture' => 'server0');
$info[1] = array ('address' => 'ip', 'port' => 80, 'picture' => 'server1');
$info[2] = array ('address' => 'ip', 'port' => 80, 'picture' => 'server2');
$info[3] = array ('address' => 'ip', 'port' => 80, 'picture' => 'server3');
$info[4] = array ('address' => 'ip', 'port' => 80, 'picture' => 'server4');
$info[5] = array ('address' => 'ip', 'port' => 80, 'picture' => 'server5');
$timeout = 2;
$filetyp="gif";
foreach ($info as $key => $aInfo)
{
$fp = "1";
// $fp = @fsockopen ($aInfo["address"], $aInfo["port"], $aInfo["picture"], $errno, $errstr, $timeout);
echo $fp . 'hallo' . $img . '<br>' . "\n";
if ($fp)
{
$img = imagejpeg ( 'server0', 'off_server0.jpeg', 100 ); // $img=("'off_'.$aInfo["picture"].'.gif'");
// imagegif($img,'',0);
}
else
{
$img=('on_'.$aInfo['picture'].'.gif');
imagegif($img,'',0);
}
}
imagepng($img,'serverstatus.png',0);
imagedestroy($img);
?>[/PHP]

MfG

T-Offline

Link zu diesem Kommentar
Auf anderen Seiten teilen

das mit dem imagejpeg/imagegif usw wird so nix.

das kann man nehmen wenn php EIN bild generieren soll, aber du versuchst mehrere zu generieren.

schnelles einfaches beispiel:


if ($fp) {
echo '<img src="on_'.$aInfo['picture'].'.gif" alt="online" />';
} else {
echo '<img src="off_'.$aInfo['picture'].'.gif" alt="offline" />';
}
[/PHP]

Link zu diesem Kommentar
Auf anderen Seiten teilen

Jetzt ist folgendes Problem!

Er zeigt die Server immer als Offline an. Es kommt mir so vor als würde er die regel überspringen.

<?php 
$info = array();
$info[0] = array ('address' => 'ip', 'port' => 80, 'picture' => 'server0');
$info[1] = array ('address' => 'ip', 'port' => 80, 'picture' => 'server1');
$info[2] = array ('address' => 'ip', 'port' => 80, 'picture' => 'server2');
$info[3] = array ('address' => 'ip', 'port' => 80, 'picture' => 'server3');
$info[4] = array ('address' => 'ip', 'port' => 80, 'picture' => 'server4');
$info[5] = array ('address' => 'ip', 'port' => 80, 'picture' => 'server5');
$timeout = 10;
$filetyp="gif";
foreach ($info as $key => $aInfo)
{
$fp = "1";
$fp = @fsockopen ($aInfo["address"], $aInfo["port"], $aInfo["picture"], $errno, $errstr, $timeout);
echo $fp . $img . '<br>' . "\n";
if ($fp)
{
echo '<img src="on_'.$aInfo['picture'].'.gif" alt="online" />';
}
else
{
echo '<img src="off_'.$aInfo['picture'].'.gif" alt="offline" />';
}
}
?>[/PHP]

Hmm weiß einer noch ne Rat dreh bald durch wegen so einer ******* anzeige!

Link zu diesem Kommentar
Auf anderen Seiten teilen

naja, das kommt nun drauf an ^^

hast du das lokal?

steht bei 'address' auch die richtige ip?

und das wichtigste, unterstützt das verwendete php auch fsockopen? phpinfo() hilft, oder einfach mal das @ vor fsockopen weglassen, damit du eventuelle fehlermeldungen siehst.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Warning: fsockopen() expects at most 5 parameters, 6 given in /var/www/fsock.php on line 14

offline

Warning: fsockopen() expects at most 5 parameters, 6 given in /var/www/fsock.php on line 14

offline

Warning: fsockopen() expects at most 5 parameters, 6 given in /var/www/fsock.php on line 14

offline

Warning: fsockopen() expects at most 5 parameters, 6 given in /var/www/fsock.php on line 14

offline

Warning: fsockopen() expects at most 5 parameters, 6 given in /var/www/fsock.php on line 14

offline

Warning: fsockopen() expects at most 5 parameters, 6 given in /var/www/fsock.php on line 14

offline

Hilft das ?? ^^

lass einfach den $timeout weg am ende der parameterliste dann klappt das.

Link zu diesem Kommentar
Auf anderen Seiten teilen

richtig, erstmal das timeout streichen. was hat dich bitte auf diese idee gebracht? einfach die tatsache das eins zuviel ist?

ich geb zu mir ists auch erst jetzt aufgefallen, aber wenn dann solltest du das $aInfo["picture"] nicht an fsockopen übergeben, das hat damit nix zu tun ..

also: $fp = @fsockopen ($aInfo["address"], $aInfo["port"], $errno, $errstr, $timeout);

das timeout ist aber scho wichtig o.0

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...