222 lines
9.1 KiB
PHP
222 lines
9.1 KiB
PHP
<?php
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// NagiosQL
|
|
//
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// (c) 2005-2018 by Martin Willisegger
|
|
//
|
|
// Project : NagiosQL
|
|
// Component : Installer script - check page
|
|
// Website : https://sourceforge.net/projects/nagiosql/
|
|
// Version : 3.4.0
|
|
// GIT Repo : https://gitlab.com/wizonet/NagiosQL
|
|
//
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// Path settings
|
|
// ===================
|
|
$strPattern = '(install/[^/]*.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
|
|
// =======================
|
|
$preContent = $preBasePath.'install/templates/install.htm.tpl';
|
|
$preEncode = 'utf-8';
|
|
$preLocale = $preBasePath.'config/locale';
|
|
$chkModus = 'none';
|
|
//
|
|
// Include preprocessing file
|
|
// ==========================
|
|
require $preBasePath.'install/functions/prepend_install.php';
|
|
//
|
|
// Actual database files
|
|
// =====================
|
|
$preSqlNewInstall = $preBasePath.'install/sql/nagiosQL_v34_db_mysql.sql';
|
|
$preSqlUpdateLast = $preBasePath.'install/sql/update_320_340.sql';
|
|
$preNagiosQL_ver = '3.4.0';
|
|
//
|
|
// Process initial value
|
|
// =====================
|
|
if (!isset($_SESSION['init_settings'])) {
|
|
header('Location: index.php');
|
|
exit;
|
|
}
|
|
$strInitDBtype = isset($_SESSION['SETS']['db']['type']) ? $_SESSION['SETS']['db']['type']
|
|
: $_SESSION['init_settings']['db']['type'];
|
|
$strInitDBserver = isset($_SESSION['SETS']['db']['server']) ? $_SESSION['SETS']['db']['server']
|
|
: $_SESSION['init_settings']['db']['server'];
|
|
$strInitDBname = isset($_SESSION['SETS']['db']['database']) ? $_SESSION['SETS']['db']['database']
|
|
: $_SESSION['init_settings']['db']['database'];
|
|
$strInitDBuser = isset($_SESSION['SETS']['db']['username']) ? $_SESSION['SETS']['db']['username']
|
|
: $_SESSION['init_settings']['db']['username'];
|
|
$strInitDBpass = isset($_SESSION['SETS']['db']['password']) ? $_SESSION['SETS']['db']['password']
|
|
: $_SESSION['init_settings']['db']['password'];
|
|
$strInitDBport = isset($_SESSION['SETS']['db']['port']) ? $_SESSION['SETS']['db']['port']
|
|
: $_SESSION['init_settings']['db']['port'];
|
|
//
|
|
// Init session parameters
|
|
// =======================
|
|
if (!isset($_SESSION['install']['jscript'])) {
|
|
$_SESSION['install']['jscript'] = 'no';
|
|
}
|
|
if (!isset($_SESSION['install']['locale'])) {
|
|
$_SESSION['install']['locale'] = 'en_GB';
|
|
}
|
|
if (!isset($_SESSION['install']['dbtype'])) {
|
|
$_SESSION['install']['dbtype'] = $strInitDBtype;
|
|
}
|
|
if (!isset($_SESSION['install']['dbserver'])) {
|
|
$_SESSION['install']['dbserver'] = $strInitDBserver;
|
|
}
|
|
if (!isset($_SESSION['install']['localsrv'])) {
|
|
$_SESSION['install']['localsrv'] = '';
|
|
}
|
|
if (!isset($_SESSION['install']['dbname'])) {
|
|
$_SESSION['install']['dbname'] = $strInitDBname;
|
|
}
|
|
if (!isset($_SESSION['install']['dbuser'])) {
|
|
$_SESSION['install']['dbuser'] = $strInitDBuser;
|
|
}
|
|
if (!isset($_SESSION['install']['dbpass'])) {
|
|
$_SESSION['install']['dbpass'] = $strInitDBpass;
|
|
}
|
|
if (!isset($_SESSION['install']['admuser'])) {
|
|
$_SESSION['install']['admuser'] = 'root';
|
|
}
|
|
if (!isset($_SESSION['install']['admpass'])) {
|
|
$_SESSION['install']['admpass'] = '';
|
|
}
|
|
if (!isset($_SESSION['install']['qluser'])) {
|
|
$_SESSION['install']['qluser'] = 'admin';
|
|
}
|
|
if (!isset($_SESSION['install']['qlpass'])) {
|
|
$_SESSION['install']['qlpass'] = '';
|
|
}
|
|
if (!isset($_SESSION['install']['dbport'])) {
|
|
$_SESSION['install']['dbport'] = $strInitDBport;
|
|
}
|
|
if (!isset($_SESSION['install']['dbdrop'])) {
|
|
$_SESSION['install']['dbdrop'] = 0;
|
|
}
|
|
if (!isset($_SESSION['install']['sample'])) {
|
|
$_SESSION['install']['sample'] = 0;
|
|
}
|
|
if (!isset($_SESSION['install']['version'])) {
|
|
$_SESSION['install']['version'] = $preNagiosQL_ver;
|
|
}
|
|
if (!isset($_SESSION['install']['createpath'])) {
|
|
$_SESSION['install']['createpath'] = 0;
|
|
}
|
|
if (!isset($_SESSION['install']['qlpath'])) {
|
|
$_SESSION['install']['qlpath'] = '/etc/nagiosql';
|
|
}
|
|
if (!isset($_SESSION['install']['nagpath'])) {
|
|
$_SESSION['install']['nagpath'] = '/etc/nagios';
|
|
}
|
|
//
|
|
// POST parameters
|
|
// ===============
|
|
$arrStep = array(1,2,3);
|
|
$chkStep = filter_input(INPUT_POST, 'hidStep', FILTER_VALIDATE_INT);
|
|
if (!in_array($chkStep, $arrStep, true)) {
|
|
$chkStep = 1;
|
|
}
|
|
$chkStepG = filter_input(INPUT_GET, 'step', FILTER_VALIDATE_INT);
|
|
if (($chkStepG != null) && in_array($chkStepG, $arrStep, true)) {
|
|
$chkStep = $chkStepG;
|
|
}
|
|
//
|
|
// Set session values
|
|
// ==================
|
|
$_SESSION['install']['locale'] = (filter_input(INPUT_POST, 'hidLocale') != null) ?
|
|
filter_input(INPUT_POST, 'hidLocale', FILTER_SANITIZE_STRING) : $_SESSION['install']['locale'];
|
|
$_SESSION['install']['jscript'] = (filter_input(INPUT_POST, 'hidJScript') != null) ?
|
|
filter_input(INPUT_POST, 'hidJScript', FILTER_SANITIZE_STRING) : $_SESSION['install']['jscript'];
|
|
$_SESSION['install']['dbtype'] = (filter_input(INPUT_POST, 'selDBtype') != null) ?
|
|
filter_input(INPUT_POST, 'selDBtype', FILTER_SANITIZE_STRING) : $_SESSION['install']['dbtype'];
|
|
$_SESSION['install']['dbserver'] = (filter_input(INPUT_POST, 'tfDBserver') != null) ?
|
|
filter_input(INPUT_POST, 'tfDBserver', FILTER_SANITIZE_STRING) : $_SESSION['install']['dbserver'];
|
|
$_SESSION['install']['localsrv'] = (filter_input(INPUT_POST, 'tfLocalSrv') != null) ?
|
|
filter_input(INPUT_POST, 'tfLocalSrv', FILTER_SANITIZE_STRING) : $_SESSION['install']['localsrv'];
|
|
$_SESSION['install']['dbname'] = (filter_input(INPUT_POST, 'tfDBname') != null) ?
|
|
filter_input(INPUT_POST, 'tfDBname', FILTER_SANITIZE_STRING) : $_SESSION['install']['dbname'];
|
|
$_SESSION['install']['dbuser'] = (filter_input(INPUT_POST, 'tfDBuser') != null) ?
|
|
filter_input(INPUT_POST, 'tfDBuser', FILTER_SANITIZE_STRING) : $_SESSION['install']['dbuser'];
|
|
$_SESSION['install']['dbpass'] = (filter_input(INPUT_POST, 'tfDBpass') != null) ?
|
|
filter_input(INPUT_POST, 'tfDBpass', FILTER_SANITIZE_STRING) : $_SESSION['install']['dbpass'];
|
|
$_SESSION['install']['admuser'] = (filter_input(INPUT_POST, 'tfDBprivUser') != null) ?
|
|
filter_input(INPUT_POST, 'tfDBprivUser', FILTER_SANITIZE_STRING) : $_SESSION['install']['admuser'];
|
|
$_SESSION['install']['admpass'] = (filter_input(INPUT_POST, 'tfDBprivPass') != null) ?
|
|
filter_input(INPUT_POST, 'tfDBprivPass', FILTER_SANITIZE_STRING) : $_SESSION['install']['admpass'];
|
|
$_SESSION['install']['qluser'] = (filter_input(INPUT_POST, 'tfQLuser') != null) ?
|
|
filter_input(INPUT_POST, 'tfQLuser', FILTER_SANITIZE_STRING) : $_SESSION['install']['qluser'];
|
|
$_SESSION['install']['qlpass'] = (filter_input(INPUT_POST, 'tfQLpass') != null) ?
|
|
filter_input(INPUT_POST, 'tfQLpass', FILTER_SANITIZE_STRING) : $_SESSION['install']['qlpass'];
|
|
$_SESSION['install']['qlpath'] = (filter_input(INPUT_POST, 'tfQLpath') != null) ?
|
|
filter_input(INPUT_POST, 'tfQLpath', FILTER_SANITIZE_STRING) : $_SESSION['install']['qlpath'];
|
|
$_SESSION['install']['nagpath'] = (filter_input(INPUT_POST, 'tfNagiosPath') != null) ?
|
|
filter_input(INPUT_POST, 'tfNagiosPath', FILTER_SANITIZE_STRING) : $_SESSION['install']['nagpath'];
|
|
$_SESSION['install']['dbdrop'] = filter_input(
|
|
INPUT_POST,
|
|
'chbDrop',
|
|
FILTER_VALIDATE_INT,
|
|
array('options' => array('default' => 0))
|
|
);
|
|
$_SESSION['install']['sample'] = filter_input(
|
|
INPUT_POST,
|
|
'chbSample',
|
|
FILTER_VALIDATE_INT,
|
|
array('options' => array('default' => 0))
|
|
);
|
|
$_SESSION['install']['createpath'] = filter_input(
|
|
INPUT_POST,
|
|
'chbPath',
|
|
FILTER_VALIDATE_INT,
|
|
array('options' => array('default' => 0))
|
|
);
|
|
$strSqlFile = str_replace('DBTYPE', $_SESSION['install']['dbtype'], $preSqlNewInstall);
|
|
if (filter_input(INPUT_POST, 'butNewInstall') != null) {
|
|
$chkModus = 'Installation';
|
|
}
|
|
if (filter_input(INPUT_POST, 'butUpgrade') != null) {
|
|
$chkModus = 'Update';
|
|
}
|
|
if (!isset($_SESSION['install']['mode'])) {
|
|
$_SESSION['install']['mode'] = $chkModus;
|
|
}
|
|
//
|
|
// Language settings
|
|
// =================
|
|
if (extension_loaded('gettext')) {
|
|
putenv('LC_ALL=' .$_SESSION['install']['locale'].$preEncode);
|
|
putenv('LANG=' .$_SESSION['install']['locale'].$preEncode);
|
|
// GETTEXT domain
|
|
setlocale(LC_ALL, $_SESSION['install']['locale']. '.' .$preEncode);
|
|
bindtextdomain($_SESSION['install']['locale'], $preLocale);
|
|
bind_textdomain_codeset($_SESSION['install']['locale'], $preEncode);
|
|
textdomain($_SESSION['install']['locale']);
|
|
}
|
|
$myInstClass->arrSession = $_SESSION;
|
|
//
|
|
// Content in buffer laden
|
|
// =======================
|
|
ob_start();
|
|
include 'step' .$chkStep. '.php';
|
|
$strContentRaw = ob_get_contents();
|
|
ob_end_clean();
|
|
//
|
|
// Build content
|
|
// =============
|
|
$arrTemplate['PAGETITLE'] = '[NagiosQL] Installation Wizard';
|
|
$arrTemplate['MAIN_TITLE'] = $myInstClass->translate('Welcome to the NagiosQL Installation Wizard');
|
|
$arrTemplate['CONTENT'] = $strContentRaw;
|
|
//
|
|
// Write content
|
|
// =============
|
|
$myInstClass->filTemplate = $preContent;
|
|
$strContent = $myInstClass->parseTemplate($arrTemplate, $preContent);
|
|
echo $strContent;
|