198 lines
7.9 KiB
PHP
198 lines
7.9 KiB
PHP
<?php
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// NagiosQL
|
|
//
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// (c) 2005-2018 by Martin Willisegger
|
|
//
|
|
// Project : NagiosQL
|
|
// Component : Online version check
|
|
// Website : https://sourceforge.net/projects/nagiosql/
|
|
// Version : 3.4.0
|
|
// GIT Repo : https://gitlab.com/wizonet/NagiosQL
|
|
//
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// Path settings
|
|
// ===================
|
|
$strPattern = '(admin/[^/]*.php)';
|
|
$preRelPath = preg_replace($strPattern, '', filter_input(INPUT_SERVER, 'PHP_SELF', FILTER_SANITIZE_STRING));
|
|
$preBasePath = preg_replace($strPattern, '', filter_input(INPUT_SERVER, 'SCRIPT_FILENAME', FILTER_SANITIZE_STRING));
|
|
//
|
|
// Define common variables
|
|
// =======================
|
|
$preNoMain = 1;
|
|
$chkShow = filter_input(INPUT_GET, 'show', FILTER_VALIDATE_INT, array('options' => array('default' => 0)));
|
|
//
|
|
// Include preprocessing file
|
|
// ==========================
|
|
require $preBasePath.'functions/prepend_adm.php';
|
|
$strCommandLine = ' ';
|
|
$intCount = 0;
|
|
//
|
|
// Get database values
|
|
// ===================
|
|
if ($chkShow == 1) {
|
|
$versionfeed = 'http://api.wizonet.ch/nagiosql/versioncheck.php?myversion=' .urlencode($setFileVersion);
|
|
$strError = '';
|
|
if ((isset($SETS['network']['proxy']) && ($SETS['network']['proxy'] == '1')) &&
|
|
(isset($SETS['network']['proxyserver']) && ($SETS['network']['proxyserver'] != ''))) {
|
|
if ((isset($SETS['network']['proxyuser']) && ($SETS['network']['proxyuser'] != '')) &&
|
|
(isset($SETS['network']['proxypasswd']) && ($SETS['network']['proxypasswd'] != ''))) {
|
|
$strProxyAuth = base64_encode($SETS['network']['proxyuser']. ':' .$SETS['network']['proxypasswd']);
|
|
$aContext = array(
|
|
'http' => array(
|
|
'proxy' => 'tcp://'.$SETS['network']['proxyserver'],
|
|
'request_fulluri' => true,
|
|
'header' => "Proxy-Authorization: Basic $strProxyAuth",
|
|
'timeout' => 1,
|
|
),
|
|
);
|
|
} else {
|
|
$aContext = array(
|
|
'http' => array(
|
|
'proxy' => 'tcp://'.$SETS['network']['proxyserver'],
|
|
'request_fulluri' => true,
|
|
'timeout' => 1,
|
|
),
|
|
);
|
|
}
|
|
$intErrorReporting = error_reporting();
|
|
error_reporting(0);
|
|
$cxContext = stream_context_create($aContext);
|
|
$arrFile = file($versionfeed, false, $cxContext);
|
|
$arrError = error_get_last();
|
|
error_reporting($intErrorReporting);
|
|
if ($arrError['message'] != '') {
|
|
$strError .= utf8_encode($arrError['message']). ' (' .translate('check proxy settings'). ')';
|
|
}
|
|
} else {
|
|
$intErrorReporting = error_reporting();
|
|
error_reporting(0);
|
|
$cxContext = stream_context_create(array('http' => array('timeout' => 1)));
|
|
$arrFile = file($versionfeed, false, $cxContext);
|
|
$arrError = error_get_last();
|
|
error_reporting($intErrorReporting);
|
|
if ($arrError['message'] != '') {
|
|
$strError .= utf8_encode($arrError['message']). ' (' .translate('check proxy settings'). ')';
|
|
}
|
|
}
|
|
$strInstalled = translate('Installed');
|
|
$strAvailable = translate('Available');
|
|
$strInformation = translate('Information');
|
|
$strVersion = '';
|
|
$strRelease = '';
|
|
$strRelInfo = '';
|
|
if (is_array($arrFile) && count($arrFile) != 0) {
|
|
foreach ($arrFile as $elem) {
|
|
if (substr_count($elem, 'version') != 0) {
|
|
$strVersion = trim(strip_tags($elem));
|
|
}
|
|
if (substr_count($elem, 'release_date') != 0) {
|
|
$strRelease = trim(strip_tags($elem));
|
|
}
|
|
if (substr_count($elem, 'error') != 0) {
|
|
$strError = trim(strip_tags($elem));
|
|
}
|
|
if (substr_count($elem, 'information') != 0) {
|
|
$strRelInfo = trim(strip_tags($elem));
|
|
}
|
|
}
|
|
}
|
|
$setFileAvailable = $strVersion;
|
|
if (version_compare($strVersion, $setFileVersion, '==')) {
|
|
$setFileInformation = "<span class='greenmessage'>".translate('You already have the latest version installed').
|
|
'</span>';
|
|
} elseif (version_compare($strVersion, $setFileVersion, '>=')) {
|
|
$setFileInformation = "<span class='redmessage'>".translate('You are using an old NagiosQL version. Please '.
|
|
'update to the latest stable version'). '</span>: ';
|
|
$setFileInformation .= '<a href="http://sourceforge.net/projects/nagiosql/files/" target="_blank">' .
|
|
'NagiosQL on Sourceforge</a>';
|
|
} elseif (version_compare($strVersion, $setFileVersion, '<=')) {
|
|
$setFileInformation = "<span class='redmessage'>".translate('You are using a newer development version '.
|
|
'without official support'). '</span>';
|
|
}
|
|
if (($strError != 'none') && ($strError != '')) {
|
|
$setFileInformation = "<span class='redmessage'>".$strError. '</span>';
|
|
} ?>
|
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
|
<html>
|
|
<head>
|
|
<title>Version check</title>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
|
<link href="<?php
|
|
echo $_SESSION['SETS']['path']['base_url']; ?>config/main.css" rel="stylesheet" type="text/css">
|
|
<link href="<?php
|
|
echo $_SESSION['SETS']['path']['base_url']; ?>config/content.css" rel="stylesheet" type="text/css">
|
|
<style type="text/css">
|
|
<!--
|
|
body {
|
|
font-family: Verdana, Arial, Helvetica, sans-serif;
|
|
font-size: 10px;
|
|
color: #000000;
|
|
background-color: #FFFFFF;
|
|
margin: 0;
|
|
border: none;
|
|
}
|
|
-->
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<table width="100%" border="0" class="content_listtable" style="padding:0; margin:0; top:3px;">
|
|
<tr>
|
|
<th style="text-align: center"><?php echo $strInstalled; ?></th>
|
|
<th style="text-align: center"><?php echo $strAvailable; ?></th>
|
|
<th style="text-align: left; padding-left: 30px;"><?php echo $strInformation; ?></th>
|
|
</tr>
|
|
<tr>
|
|
<td class="tdmb" style="width:90px;vertical-align:top;padding-top:4px;"><?php
|
|
echo $setFileVersion; ?></td>
|
|
<td class="tdmb" style="width:90px;vertical-align:top;padding-top:4px;"><?php
|
|
echo $setFileAvailable; ?></td>
|
|
<td class="tdlb" style="width:470px;vertical-align:top;padding-top:4px;"><?php
|
|
echo $setFileInformation; ?></td>
|
|
</tr>
|
|
</table>
|
|
<script type="text/javascript">
|
|
<!--
|
|
parent.document.getElementById('vcheck').className = 'elementHide';
|
|
parent.document.getElementById('versioncheck').className = 'elementShow';
|
|
<?php
|
|
if (($strError != 'none') && ($strError != '')) {
|
|
echo " parent.document.getElementById('versioncheck').height = '65';";
|
|
}
|
|
?>
|
|
//-->
|
|
</script>
|
|
</body>
|
|
</html>
|
|
<?php
|
|
} else {
|
|
?>
|
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
|
<html>
|
|
<head>
|
|
<title>Commandline</title>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
|
<style type="text/css">
|
|
<!--
|
|
body {
|
|
font-family: Verdana, Arial, Helvetica, sans-serif;
|
|
font-size: 10px;
|
|
color: #000000;
|
|
background-color: #FFFFFF;
|
|
margin: 0;
|
|
border: none;
|
|
}
|
|
-->
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<p><br>Loading...</p>
|
|
</body>
|
|
</html>
|
|
<?php
|
|
}
|
|
?>
|