$servers = $_SESSION['db']->getAllProbes(); foreach ($servers as $server) { // only show active probes if ($server['check'] == true) { // users may only see their own probes if ($_SESSION['user']->isUser()) { if ($_SESSION['user']->ownsProbe($server['id'])) { print "<tr>"; $sTest->setTitle($server['name']); $sTest->setServer($server['url']); $sTest->setFindstring($server['findstring']); $sTest->setVersion($version); $sTest->setHostname($hostname); try { $sTest->test(); if ($sTest->getStatus() == true) { $message = "<img src=\"img/good.png\" alt=\"ok\"/></td><td>" . $sTest->getBenchmark()->timeElapsed(); } else { $message = "<img src=\"img/bad.png\" alt=\"failed\"/></td><td>" . $sTest->getBenchmark()->timeElapsed() . "</td><td>" . htmlspecialchars(substr($sTest->getResult(), 0, $maxreplychars)); } print "<td><strong>" . $sTest->getTitle() . "</strong></td><td>" . $message . "</td>\n"; } catch (Exception $ex) { print "<td><strong><span class=\"badnews\">" . $sTest->getTitle() . ": " . $ex->getMessage() . "</span></strong></td>"; } print "</tr>"; } } else { print "<tr>"; $sTest->setTitle($server['name']); $sTest->setServer($server['url']); $sTest->setFindstring($server['findstring']);
$db = new database($dbuser, $dbpass, $dbhost, $dbname); $servers = $db->getAllProbesToCheck(); foreach ($servers as $server) { if ($currentminute % $server['checkinterval'] == 0) { print "Probing " . $server['name']; $mystatus = false; $sTest->setTitle($server['name']); $sTest->setServer($server['url']); $sTest->setHost($server['host']); $sTest->setFindstring($server['findstring']); $sTest->setVersion($version); $sTest->setHostname($hostname); try { $sTest->test(); // test again to make sure we really have a problem and avoid accidental mails if ($sTest->getStatus() == false) { $random = rand(1, 15); print " ... trying again in " . $random . " seconds to ensure we really have a problem\n"; sleep($random); $sTest->test(); } } catch (Exception $ex) { print "Exception occured for probe '" . $sTest->getTitle() . "': " . $ex->getMessage() . "\n"; } if ($sTest->getStatus() == false) { print " ... failed\n"; // send mail only if status in DB was true -> mail will only be sent once $status = $db->getProbeStatus($server['id']); if ($status == true) { // insert entry into events table $db->addProbeEvent('error', $sTest->getResult(), $server['id']);