Hallo,
ich habe ein kleines Problem. Ich habe ein Script geschrieben, dass checken soll, ob ein Forum online ist und wenn es offline ist, soll es die Zeit in eine Datenbank schreiben. So weit, so gut.
Jetzt habe ich das Problem, dass das Script, wenn der Server nicht oder nur sehr sehr langsam reagiert ewig braucht. Ich wollte also mittels fsockopen vorher checken, ob der Server innerhalb einer bestimmten Zeit reagiert (timeout). Aber das funktioniert irgendwie nicht richtig und ich weiss nicht, woran das liegt.
Mein Code sieht folgendermassen aus:
Wenn der Server nicht erreichbar ist, dann braucht das Script 100 bis 200 sekunden, wenn der Server geht nur 7 sekunden. Durch
wollte ich eigentlich erreichen, dass er nach 3 sekunden aufhört die Seite aufzurufen und mit ein Timeout zurückgibt und es dann als fehlgeschlagenen Versuch wertet, aber irgendwie klappt das nicht so ganz.
Ich hoffe, ihr könnt mir hier helfen.
Gruss,
Steffi
ich habe ein kleines Problem. Ich habe ein Script geschrieben, dass checken soll, ob ein Forum online ist und wenn es offline ist, soll es die Zeit in eine Datenbank schreiben. So weit, so gut.
Jetzt habe ich das Problem, dass das Script, wenn der Server nicht oder nur sehr sehr langsam reagiert ewig braucht. Ich wollte also mittels fsockopen vorher checken, ob der Server innerhalb einer bestimmten Zeit reagiert (timeout). Aber das funktioniert irgendwie nicht richtig und ich weiss nicht, woran das liegt.
Mein Code sieht folgendermassen aus:
PHP-Code:
/* Datenbank-Daten */
$server= "servername";
$user= "username";
$passwort= "*****";
$datenbank= "datenbankname";
$tabelle= "downtime";
$timestamp = date('YmdHis');
/* Zugriff auf SQL-Server und Abfragen der Tabelle */
MYSQL_CONNECT($server, $user, $passwort) or die ("<H3>Datenbankserver nicht erreichbar</H3>");
MYSQL_SELECT_DB($datenbank) or die ("<H3>Datenbank nicht vorhanden</H3>");
/* Timeout von 3 sekunden eingefügt */
$sql1 = "INSERT INTO $tabelle (date, site) VALUES ($timestamp, 'seite')";
$fp1 = fsockopen("seitenname.com", 80, $errno, $errstr, 3);
/* Abfrage der Seite, falls Server reagiert */
if (!$fp1){
$result = mysql_query($sql1) or die (mysql_error());
echo "Timeout<br>";
} else {
if(backlinkCheck("http://seitenname.com/index.php", "Warning")) {
$result = mysql_query($sql1) or die (mysql_error());
echo "Seite: Warning gefunden<br>";
} else { echo "Seite: Seite ok!<br>";}
}
/* Überpruft, ob in der Seite $siteurl der Test $recip vorkommt */
function backlinkCheck($siteurl, $recip) {
$arrText = file($siteurl);
for ($i=0; $i<count($arrText); $i++) {
$text = $text . $arrText[$i];
}
if (eregi($recip, $text)) {
$text = "";
return true;
} else {
$text = "";
return false;
}
PHP-Code:
$fp1 = fsockopen("seitenname.com", 80, $errno, $errstr, 3);
Ich hoffe, ihr könnt mir hier helfen.
Gruss,
Steffi
Kommentar