diff -uNr nagiosql32.orig/admin/cgicfg.php nagiosql32/admin/cgicfg.php
--- nagiosql32.orig/admin/cgicfg.php	2012-03-07 10:38:34.457096000 +0100
+++ nagiosql32/admin/cgicfg.php	2017-02-09 15:55:19.000000000 +0100
@@ -1,19 +1,16 @@
 <?php
 ///////////////////////////////////////////////////////////////////////////////
 //
-// NagiosQL
+// NagiosQL Service Pack 3
 //
 ///////////////////////////////////////////////////////////////////////////////
 //
-// (c) 2005-2012 by Martin Willisegger
+// (c) 2016 by Fabio Lucchiari
 //
-// Project   : NagiosQL
-// Component : File editor cgi.cfg
-// Website   : http://www.nagiosql.org
-// Date      : $LastChangedDate: 2012-03-07 10:38:34 +0100 (Wed, 07 Mar 2012) $
-// Author    : $LastChangedBy: martin $
-// Version   : 3.2.0
-// Revision  : $LastChangedRevision: 1275 $
+// Project   : NagiosQL Service Pack 3
+// Component : Configuration verification
+// Website   : https://tecnologicasduvidas.blogspot.com.br
+// Date      : $LastChangedDate: 2017-01-02 16:00:00 -0300$
 //
 ///////////////////////////////////////////////////////////////////////////////
 //
@@ -38,7 +35,7 @@
 $myConfigClass->getConfigData($intConfigId,"method",$intMethod);
 $myConfigClass->getConfigData($intConfigId,"nagiosbasedir",$strBaseDir);
 $strConfigfile 	= str_replace("//","/",$strBaseDir."/cgi.cfg");
-$strLocalBackup	= str_replace("//","/",$strBaseDir."/cgi.cfg_old_").date("YmdHis",mktime());
+$strLocalBackup	= str_replace("//","/",$strBaseDir."/cgi.cfg_old_").date("YmdHis",time());
 //
 // Convert Windows to UNIX 		
 // =======================
diff -uNr nagiosql32.orig/admin/nagioscfg.php nagiosql32/admin/nagioscfg.php
--- nagiosql32.orig/admin/nagioscfg.php	2012-03-07 10:38:34.457096000 +0100
+++ nagiosql32/admin/nagioscfg.php	2017-02-09 15:55:19.000000000 +0100
@@ -1,19 +1,16 @@
 <?php
 ///////////////////////////////////////////////////////////////////////////////
 //
-// NagiosQL
+// NagiosQL Service Pack 3
 //
 ///////////////////////////////////////////////////////////////////////////////
 //
-// (c) 2005-2012 by Martin Willisegger
+// (c) 2016 by Fabio Lucchiari
 //
-// Project   : NagiosQL
-// Component : Admin timeperiod definitions
-// Website   : http://www.nagiosql.org
-// Date      : $LastChangedDate: 2012-03-07 10:38:34 +0100 (Wed, 07 Mar 2012) $
-// Author    : $LastChangedBy: martin $
-// Version   : 3.2.0
-// Revision  : $LastChangedRevision: 1275 $
+// Project   : NagiosQL Service Pack 3
+// Component : Configuration verification
+// Website   : https://tecnologicasduvidas.blogspot.com.br
+// Date      : $LastChangedDate: 2017-01-02 16:00:00 -0300$
 //
 ///////////////////////////////////////////////////////////////////////////////
 //
@@ -38,7 +35,7 @@
 $myConfigClass->getConfigData($intConfigId,"method",$intMethod);
 $myConfigClass->getConfigData($intConfigId,"nagiosbasedir",$strBaseDir);
 $myConfigClass->getConfigData($intConfigId,"conffile",$strConfigfile);
-$strLocalBackup = $strConfigfile."_old_".date("YmdHis",mktime());
+$strLocalBackup = $strConfigfile."_old_".date("YmdHis",time());
 //
 // Convert Windows to UNIX 		
 // =======================
diff -uNr nagiosql32.orig/admin/verify.php nagiosql32/admin/verify.php
--- nagiosql32.orig/admin/verify.php	2017-05-20 19:39:02.224000000 +0200
+++ nagiosql32/admin/verify.php	2017-02-09 15:55:19.000000000 +0100
@@ -1,19 +1,16 @@
 <?php
 ///////////////////////////////////////////////////////////////////////////////
 //
-// NagiosQL
+// NagiosQL Service Pack 3
 //
 ///////////////////////////////////////////////////////////////////////////////
 //
-// (c) 2005-2012 by Martin Willisegger
+// (c) 2016 by Fabio Lucchiari
 //
-// Project   : NagiosQL
+// Project   : NagiosQL Service Pack 3
 // Component : Configuration verification
-// Website   : http://www.nagiosql.org
-// Date      : $LastChangedDate: 2012-09-24 14:42:29 +0200 (Mo, 24. Sep 2012) $
-// Author    : $LastChangedBy: martin $
-// Version   : 3.2.0
-// Revision  : $LastChangedRevision: 1347 $
+// Website   : https://tecnologicasduvidas.blogspot.com.br
+// Date      : $LastChangedDate: 2017-01-02 16:00:00 -0300$
 //
 ///////////////////////////////////////////////////////////////////////////////
 //
@@ -64,9 +61,9 @@
 		$intProcessError = 1;
 	}
   	// Write service configuration
-  	$strSQL   = "SELECT `id`, `config_name` FROM `tbl_service` WHERE `config_id` = $chkDomainId AND `active`='1' GROUP BY `config_name`";
+  	$strSQL   = "SELECT `id`, `config_name` FROM `tbl_service` WHERE `config_id` = $chkDomainId AND `active`='1' GROUP BY `config_name`,`id`";
   	$myDBClass->getDataArray($strSQL,$arrData,$intDataCount);
-  	$intError = 0;
+  	$intError = 0;	
   	if ($intDataCount != 0) {
     	foreach ($arrData AS $data) {
       		$intReturn = $myConfigClass->createConfigSingle("tbl_service",$data['id']);
@@ -126,7 +123,7 @@
 		}
 	}
 	// Write servicetemplate configuration
-	$intReturn = $myConfigClass->createConfig("tbl_servicetemplate");
+	$intReturn = $myConfigClass->createConfig("tbl_servicetemplate");	
 	if ($intReturn == 0) {
 		$myVisClass->processMessage(translate("Write")." servicetemplates.cfg ...",$strInfo);
 		$myVisClass->processMessage("Servicetemplates: ".$myConfigClass->strInfoMessage,$strInfo);
@@ -342,7 +339,7 @@
 		}
 		if (file_exists($strPidfile) && isset($arrExec[0])) {
       		if (file_exists($strCommandfile) && is_writable($strCommandfile)) {
-        		$strCommandString = "[".mktime()."] RESTART_PROGRAM;".mktime();
+        		$strCommandString = "[".time()."] RESTART_PROGRAM\n";
         		$timeout = 3;
         		$old = ini_set('default_socket_timeout', $timeout);
         		$resCmdFile = fopen($strCommandfile,"w");
@@ -354,9 +351,11 @@
           			fclose($resCmdFile);
           			$myDataClass->writeLog(translate('Nagios daemon successfully restarted'));
 					$myVisClass->processMessage(translate('Restart command successfully send to Nagios'),$strInfoMessage);	
+					
         		} else {
           			$myDataClass->writeLog(translate('Restart failed - Nagios command file not found or no rights to execute'));
-					$myVisClass->processMessage(translate('Nagios command file not found or no rights to write!'),$strErrorMessage);	
+					$myVisClass->processMessage(translate('Nagios command file not found or no rights to write!'),$strErrorMessage);
+						
         		}
       		} else {
 				
diff -uNr nagiosql32.orig/doc/CHANGELOG.txt nagiosql32/doc/CHANGELOG.txt
--- nagiosql32.orig/doc/CHANGELOG.txt	1970-01-01 01:00:00.000000000 +0100
+++ nagiosql32/doc/CHANGELOG.txt	2017-02-09 15:55:19.000000000 +0100
@@ -0,0 +1,6 @@
+CHANGELOG 3.2.0 Service Pack 3
+---------------
+
+- [OK] Updating files for compatibility with mysqli
+- [OK] Updating files for compatibility with PHP 7
+
diff -uNr nagiosql32.orig/doc/LICENSE.txt nagiosql32/doc/LICENSE.txt
--- nagiosql32.orig/doc/LICENSE.txt	1970-01-01 01:00:00.000000000 +0100
+++ nagiosql32/doc/LICENSE.txt	2017-02-09 15:55:19.000000000 +0100
@@ -0,0 +1,28 @@
+NagiosQL Service Pack 3 License - based on BSD License
+
+Copyright (c) 2016, Fabio Lucchiari
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+1. Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+3. All advertising materials mentioning features or use of this software
+   must display the following acknowledgement:
+   This product includes software developed by Fabio Lucchiari - https://tecnologicasduvidas.blogspot.com.br
+
+
+THIS SOFTWARE IS PROVIDED BY THE NAGIOSQL TEAM AND THE COPYRIGHT HOLDER ''AS IS'' AND ANY
+EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE NAGIOSQL TEAM AND THE COPYRIGHT HOLDER BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
diff -uNr nagiosql32.orig/functions/config_class.php nagiosql32/functions/config_class.php
--- nagiosql32.orig/functions/config_class.php	2017-05-20 19:39:02.224000000 +0200
+++ nagiosql32/functions/config_class.php	2017-02-09 15:55:19.000000000 +0100
@@ -1,21 +1,18 @@
 <?php
 ///////////////////////////////////////////////////////////////////////////////
 //
-// NagiosQL
+// NagiosQL Service Pack 3
 //
 ///////////////////////////////////////////////////////////////////////////////
 //
-// (c) 2005-2012 by Martin Willisegger
+// (c) 2016 by Fabio Lucchiari
 //
-// Project   : NagiosQL
-// Component : Configuration Class
-// Website   : http://www.nagiosql.org
-// Date      : $LastChangedDate: 2013-01-10 09:46:11 +0100 (Do, 10. Jan 2013) $
-// Author    : $LastChangedBy: martin $
-// Version   : 3.2.0
-// Revision  : $LastChangedRevision: 1351 $
+// Project   : NagiosQL Service Pack 3
+// Component : Configuration verification
+// Website   : https://tecnologicasduvidas.blogspot.com.br
+// Date      : $LastChangedDate: 2017-01-02 16:00:00 -0300$
 //
-///////////////////////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
 //
 ///////////////////////////////////////////////////////////////////////////////////////////////
 //
@@ -50,7 +47,7 @@
   	//  Activities during initialisation
   	//
   	///////////////////////////////////////////////////////////////////////////////////////////
-  	function nagconfig() {
+  	function __construct() {
     	if (isset($_SESSION) && isset($_SESSION['SETS'])) {
     		// Read global settings
     		$this->arrSettings = $_SESSION['SETS'];
@@ -123,7 +120,7 @@
 		if ($arrConfigId != 1) {
 			// Define variables
 			$strTimeFile  	= "unknown";
-			$intFileStamp   = mktime();
+			$intFileStamp   = time();
 			foreach($arrConfigId AS $intConfigId) {
 				// Get configuration file data
 				$this->getConfigData($intConfigId,"target",$strTarget);
@@ -226,7 +223,7 @@
 		if ($arrConfigId != 1) {
 			// Define variables
 			$strTimeFile  	= "unknown";
-			$intFileStamp   = mktime();
+			$intFileStamp   = time();
 			foreach($arrConfigId AS $intConfigId) {
 				// Get configuration file data
 				$this->getConfigData($intConfigId,"target",$strTarget);
@@ -333,7 +330,7 @@
 		if ($strMethod == 1) {
       		// Save configuration file
       		if (file_exists($strConfigDir."/".$strName) && is_writable($strBackupDir) && is_writable($strConfigDir)) {
-       			$strOldDate = date("YmdHis",mktime());
+       			$strOldDate = date("YmdHis",time());
         		copy($strConfigDir."/".$strName,$strBackupDir."/".$strName."_old_".$strOldDate);
         		unlink($strConfigDir."/".$strName);
       		} else if (!is_writable($strBackupDir)) {
@@ -350,7 +347,7 @@
         	// Save configuration file
         	$intFileStamp = ftp_mdtm($this->resConnectId, $strConfigDir."/".$strName);
         	if ($intFileStamp > -1) {
-          		$strOldDate = date("YmdHis",mktime());
+          		$strOldDate = date("YmdHis",time());
 				$intErrorReporting = error_reporting();
 				error_reporting(0);
           		$intReturn  = ftp_rename($this->resConnectId,$strConfigDir."/".$strName,$strBackupDir."/".$strName."_old_".$strOldDate);
@@ -374,7 +371,7 @@
 				$intFileStamp = $arrInfo['mtime'];
         		if ($intFileStamp > -1) {
 				
-          			$strOldDate = date("YmdHis",mktime());
+          			$strOldDate = date("YmdHis",time());
           			$intReturn  = ssh2_sftp_rename($this->resSFTP,$strConfigDir."/".$strName,$strBackupDir."/".$strName."_old_".$strOldDate);
 					if (!$intReturn) {
 						$this->processClassMessage(translate('Cannot backup the old configuration file because the permissions are wrong (remote SFTP)!')."::",$this->strErrorMessage);
@@ -583,7 +580,7 @@
 				$configtp = new HTML_Template_IT($this->arrSettings['path']['base_path']."/templates/files/");
 				$configtp->loadTemplatefile($setTemplate, true, true);
 				$configtp->setOptions($arrTplOptions);
-				$configtp->setVariable("CREATE_DATE",date("Y-m-d H:i:s",mktime()));
+				$configtp->setVariable("CREATE_DATE",date("Y-m-d H:i:s",time()));
 				$this->getConfigData($intConfigID,"version",$this->intNagVersion);
 				$configtp->setVariable("NAGIOS_QL_VERSION",$this->arrSettings['db']['version']);
 				if ($this->intNagVersion == 3) $strVersion = "Nagios 3.x config file";
@@ -812,7 +809,7 @@
 							$configtp = new HTML_Template_IT($this->arrSettings['path']['base_path']."/templates/files/");
 							$configtp->loadTemplatefile($setTemplate, true, true);
 							$configtp->setOptions($arrTplOptions);
-							$configtp->setVariable("CREATE_DATE",date("Y-m-d H:i:s",mktime()));
+							$configtp->setVariable("CREATE_DATE",date("Y-m-d H:i:s",time()));
 							if ($this->intNagVersion == 0) {
 								$this->getConfigData($intConfigID,"version",$this->intNagVersion);
 							}
diff -uNr nagiosql32.orig/functions/content_class.php nagiosql32/functions/content_class.php
--- nagiosql32.orig/functions/content_class.php	2012-02-27 13:01:17.338352000 +0100
+++ nagiosql32/functions/content_class.php	2017-02-09 15:55:19.000000000 +0100
@@ -1,21 +1,18 @@
 <?php
 ///////////////////////////////////////////////////////////////////////////////
 //
-// NagiosQL
+// NagiosQL Service Pack 3
 //
 ///////////////////////////////////////////////////////////////////////////////
 //
-// (c) 2005-2012 by Martin Willisegger
+// (c) 2016 by Fabio Lucchiari
 //
-// Project   : NagiosQL
-// Component : Content Class
-// Website   : http://www.nagiosql.org
-// Date      : $LastChangedDate: 2011-12-08 07:35:31 +0100 (Do, 08. Dez 2011) $
-// Author    : $LastChangedBy: martin $
-// Version   : 3.2.0
-// Revision  : $LastChangedRevision: 1141 $
+// Project   : NagiosQL Service Pack 3
+// Component : Configuration verification
+// Website   : https://tecnologicasduvidas.blogspot.com.br
+// Date      : $LastChangedDate: 2017-01-02 16:00:00 -0300$
 //
-///////////////////////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
 //
 ///////////////////////////////////////////////////////////////////////////////////////////////
 //
@@ -55,7 +52,7 @@
   	//  Activities during class initialization
   	//
   	///////////////////////////////////////////////////////////////////////////////////////////
-  	function nagcontent() {
+  	function __construct() {
     	// Read global settings
     	$this->arrSettings = $_SESSION['SETS'];
     	if (isset($_SESSION['domain'])) $this->intDomainId = $_SESSION['domain'];
@@ -456,7 +453,7 @@
 			if ($arrData['dependent_service_description'] == 2) {
 				$strField .= "*";
 			} else if ($arrData['dependent_service_description'] != 0) {
-        		$strSQLService 	= "SELECT `strSlave` FROM `tbl_lnkServicedependencyToService_DS` WHERE `idMaster`=".$arrData['id']." ORDER BY `strSlave`";
+        		$strSQLService 	= "SELECT `strSlave` FROM `tbl_lnkServicedependencyToService_DS` WHERE `idMaster`=".$arrData['id']." ORDER BY `strSlave`";				
         		$booReturn 		= $this->myDBClass->getDataArray($strSQLService,$arrDataService,$intDCService);
         		if ($intDCService != 0) {
           			foreach($arrDataService AS $elem) {
@@ -475,6 +472,7 @@
           			}
         		}
 			}
+			print_r($strSQLService);
 		}
 		// Serviceescalation table
 		if ($strTableName == "tbl_serviceescalation") {
diff -uNr nagiosql32.orig/functions/data_class.php nagiosql32/functions/data_class.php
--- nagiosql32.orig/functions/data_class.php	2012-03-05 07:55:49.966817000 +0100
+++ nagiosql32/functions/data_class.php	2017-02-09 15:55:19.000000000 +0100
@@ -1,21 +1,18 @@
 <?php
 ///////////////////////////////////////////////////////////////////////////////
 //
-// NagiosQL
+// NagiosQL Service Pack 3
 //
 ///////////////////////////////////////////////////////////////////////////////
 //
-// (c) 2005-2012 by Martin Willisegger
+// (c) 2016 by Fabio Lucchiari
 //
-// Project   : NagiosQL
-// Component : NagiosQL data processing class
-// Website   : http://www.nagiosql.org
-// Date      : $LastChangedDate: 2012-03-05 07:55:49 +0100 (Mon, 05 Mar 2012) $
-// Author    : $LastChangedBy: martin $
-// Version   : 3.2.0
-// Revision  : $LastChangedRevision: 1271 $
+// Project   : NagiosQL Service Pack 3
+// Component : Configuration verification
+// Website   : https://tecnologicasduvidas.blogspot.com.br
+// Date      : $LastChangedDate: 2017-01-02 16:00:00 -0300$
 //
-///////////////////////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
 //
 ///////////////////////////////////////////////////////////////////////////////////////////////
 //
@@ -44,7 +41,7 @@
   	//  Activities during initialisation
   	//
   	///////////////////////////////////////////////////////////////////////////////////////////
-  	function nagdata() {
+  	function __construct() {
     	if (isset($_SESSION) && isset($_SESSION['SETS'])) {
     		// Read global settings
     		$this->arrSettings = $_SESSION['SETS'];
diff -uNr nagiosql32.orig/functions/mysql_class.php nagiosql32/functions/mysql_class.php
--- nagiosql32.orig/functions/mysql_class.php	2012-02-21 14:10:41.579203000 +0100
+++ nagiosql32/functions/mysql_class.php	2017-02-09 15:55:19.000000000 +0100
@@ -1,21 +1,18 @@
 <?php
 ///////////////////////////////////////////////////////////////////////////////
 //
-// NagiosQL
+// NagiosQL Service Pack 3
 //
 ///////////////////////////////////////////////////////////////////////////////
 //
-// (c) 2005-2012 by Martin Willisegger
+// (c) 2016 by Fabio Lucchiari
 //
-// Project   : NagiosQL
-// Component : Mysql data processing class
-// Website   : http://www.nagiosql.org
-// Date      : $LastChangedDate: 2012-02-21 14:10:41 +0100 (Tue, 21 Feb 2012) $
-// Author    : $LastChangedBy: martin $
-// Version   : 3.2.0
-// Revision  : $LastChangedRevision: 1229 $
+// Project   : NagiosQL Service Pack 3
+// Component : Configuration verification
+// Website   : https://tecnologicasduvidas.blogspot.com.br
+// Date      : $LastChangedDate: 2017-01-02 16:00:00 -0300$
 //
-///////////////////////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
 //
 ///////////////////////////////////////////////////////////////////////////////////////////////
 //
@@ -51,7 +48,7 @@
   	//  Activities during initialisation
   	//
   	///////////////////////////////////////////////////////////////////////////////////////////
-  	function mysqldb() {
+  	function __construct() {
     	if (isset($_SESSION) && isset($_SESSION['SETS'])) {
 			// Read global settings
 			$this->arrSettings = $_SESSION['SETS'];
@@ -104,18 +101,25 @@
 	///////////////////////////////////////////////////////////////////////////////////////////
   	function getFieldData($strSQL) {
     	// Send an SQL Statement to the server
-    	$resQuery = mysql_query($strSQL);
+    	$resQuery = $this->strDBId->query($strSQL);
     	// Error processing
-    	if ($resQuery && (mysql_num_rows($resQuery) != 0) && (mysql_error() == "")) {
-      		// return the field value at postition 0/0
-			return mysql_result($resQuery,0,0);
-    	} else if (mysql_error() != "") {
-      		$this->strErrorMessage .= mysql_error()."::";
+    	if ($resQuery && (mysqli_num_rows($resQuery) != 0) && (mysqli_error($this->strDBId) == "")) {
+      		// return the field value at postition 0/0			
+			return $this->mysqli_result($resQuery,0,0);
+    	} else if (mysqli_error($this->strDBId) != "") {
+      		$this->strErrorMessage .= mysqli_error($this->strDBId)."::";
       		$this->error        	= true;
      		return("");
     	}
     	return("");
   	}
+	
+	function mysqli_result($res, $row, $field=0) { 		
+		$res->data_seek($row); 
+		$datarow = $res->fetch_array();		
+		return $datarow[$field];
+ 
+	} 
 
     ///////////////////////////////////////////////////////////////////////////////////////////
 	//  Function: Get a single dataset
@@ -134,14 +138,14 @@
   	function getSingleDataset($strSQL,&$arrDataset) {
     	$arrDataset = "";
     	// Send an SQL Statement to the server
-    	$resQuery = mysql_query($strSQL);
+    	$resQuery = $this->strDBId->query($strSQL);
     	// Error processing
-    	if ($resQuery && (mysql_num_rows($resQuery) != 0) && (mysql_error() == "")) {
+    	if ($resQuery && (mysqli_num_rows($resQuery) != 0) && (mysqli_error($this->strDBId) == "")) {
       		// Fill the data to the array
-      		$arrDataset = mysql_fetch_array($resQuery,MYSQL_ASSOC);
+      		$arrDataset = $resQuery->fetch_array(MYSQLI_ASSOC);
       		return true;
-    	} else if (mysql_error() != "") {
-      		$this->strErrorMessage .= mysql_error()."::";
+    	} else if (mysqli_error($this->strDBId) != "") {
+      		$this->strErrorMessage .= mysqli_error($this->strDBId)."::";
       		$this->error      		= true;
       		return false;
     	}
@@ -167,21 +171,23 @@
     	$arrDataset   = "";
     	$intDataCount = 0;
     	// Send an SQL Statement to the server
-    	$resQuery = mysql_query($strSQL);
+    	$resQuery = $this->strDBId->query($strSQL);
+			
     	// Error processing
-    	if ($resQuery && (mysql_num_rows($resQuery) != 0) && (mysql_error() == "")) {
-      		$intDataCount = mysql_num_rows($resQuery);
+    	if ($resQuery && (mysqli_num_rows($resQuery) != 0) && (mysqli_error($this->strDBId) == "")) {
+      		$intDataCount = mysqli_num_rows($resQuery);	
+		
       		$i = 0;
-      		// Fill array
-	  		while ($arrDataTemp = mysql_fetch_array($resQuery, MYSQL_ASSOC)) {
+      		// Fill array			
+	  		while ($arrDataTemp = $resQuery->fetch_array(MYSQLI_ASSOC)) { 
         		foreach ($arrDataTemp AS $key => $value) {
           			$arrDataset[$i][$key] = $value;
         		}
         		$i++;
       		}
       		return true;
-    	} else if (mysql_error() != "") {
-      		$this->strErrorMessage .= mysql_error()."::";
+    	} else if (mysqli_error($this->strDBId) != "") {
+      		$this->strErrorMessage .= mysqli_error($this->strDBId)."::";
       		$this->error 			= true;
       		return false;
     	}
@@ -206,14 +212,14 @@
 	///////////////////////////////////////////////////////////////////////////////////////////
   	function insertData($strSQL) {
     	// Send an SQL Statement to the server
-    	$resQuery        = mysql_query($strSQL);
+    	$resQuery        = $this->strDBId->query($strSQL);
     	// Error processing
-    	if (mysql_error() == "") {
-      		$this->intLastId    	= mysql_insert_id();
-      		$this->intAffectedRows  = mysql_affected_rows();
+    	if (mysqli_error($this->strDBId) == "") {
+      		$this->intLastId    	= $this->strDBId->insert_id;
+      		$this->intAffectedRows  = $this->strDBId->affected_rows;
       		return true;
     	} else {
-      		$this->strErrorMessage .= mysql_error()."::";
+      		$this->strErrorMessage .= mysqli_error($this->strDBId)."::";
       		$this->error      		= true;
       		return false;
     	}
@@ -234,12 +240,12 @@
 	///////////////////////////////////////////////////////////////////////////////////////////
   	function countRows($strSQL) {
     	// Send an SQL Statement to the server
-    	$resQuery = mysql_query($strSQL);
+    	$resQuery = $this->strDBId->query($strSQL);
     	// Error processing
-    	if ($resQuery && (mysql_error() == "")) {
-      		return mysql_num_rows($resQuery);
+    	if ($resQuery && (mysqli_error($this->strDBId) == "")) {
+      		return mysqli_num_rows($resQuery);
     	} else {
-      		$this->strErrorMessage .= mysql_error()."::";
+      		$this->strErrorMessage .= mysqli_error($this->strDBId)."::";
       		$this->error      		= true;
       		return 0;
     	}
@@ -270,11 +276,11 @@
       		$this->error   = true;
       		return false;
     	}
-    	$this->strDBId = @mysql_connect($dbserver.":".$dbport,$dbuser,$dbpasswd);
+    	$this->strDBId = @mysqli_connect($dbserver.":".$dbport,$dbuser,$dbpasswd);
     	// Session cannot be etablished
       	if(!$this->strDBId) {
       		$this->strErrorMessage .= "[".$this->arrSettings['db']['server']."] ".translate("Connection to the database server has failed by reason:")."::";
-      		$this->strErrorMessage .= mysql_error()."::";
+      		$this->strErrorMessage .= mysqli_error($this->strDBId)."::";
       		$this->error   	   		= true;
       		return false;
     	}
@@ -299,17 +305,17 @@
       		$this->error   = true;
       		return false;
     	}
-    	$bolConnect = @mysql_select_db($database);
+    	$bolConnect = $this->strDBId->select_db($database);
     	// Session cannot be etablished
     	if(!$bolConnect) {
       		$this->strErrorMessage .= "[".$this->arrSettings['db']['server']."] ".translate("Connection to the database server has failed by reason:")."::";
-      		$this->strErrorMessage .= mysql_error()."::";
+      		$this->strErrorMessage .= mysqli_error($this->strDBId)."::";
       		$this->error   	   		= true;
       		return false;
     	}
-		$resQuery = mysql_query("set names 'utf8'");
-		if (mysql_error() != "") {
-      		$this->strErrorMessage	.= mysql_error()."::";
+		$resQuery = $this->strDBId->query("set names 'utf8'");
+		if (mysqli_error($this->strDBId) != "") {
+      		$this->strErrorMessage	.= mysqli_error($this->strDBId)."::";
       		$this->error      		 = true;
       		return false;
     	}
@@ -326,6 +332,7 @@
   	function dbdisconnect() {
     	@mysql_close($this->strDBId);
     	return true;
-  	}
+  	}	
+	 
 }
 ?>
\ Kein Zeilenumbruch am Dateiende.
diff -uNr nagiosql32.orig/functions/nag_class.php nagiosql32/functions/nag_class.php
--- nagiosql32.orig/functions/nag_class.php	2017-05-20 19:39:02.228000000 +0200
+++ nagiosql32/functions/nag_class.php	2017-02-09 15:55:19.000000000 +0100
@@ -1,21 +1,18 @@
 <?php
 ///////////////////////////////////////////////////////////////////////////////
 //
-// NagiosQL
+// NagiosQL Service Pack 3
 //
 ///////////////////////////////////////////////////////////////////////////////
 //
-// (c) 2005-2012 by Martin Willisegger
+// (c) 2016 by Fabio Lucchiari
 //
-// Project   : NagiosQL
-// Component : Visualization Class
-// Website   : http://www.nagiosql.org
-// Date      : $LastChangedDate: 2012-10-03 10:00:02 +0200 (Mi, 03. Okt 2012) $
-// Author    : $LastChangedBy: martin $
-// Version   : 3.2.0
-// Revision  : $LastChangedRevision: 1349 $
+// Project   : NagiosQL Service Pack 3
+// Component : Configuration verification
+// Website   : https://tecnologicasduvidas.blogspot.com.br
+// Date      : $LastChangedDate: 2017-01-02 16:00:00 -0300$
 //
-///////////////////////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
 //
 ///////////////////////////////////////////////////////////////////////////////////////////////
 //
@@ -46,7 +43,7 @@
   	//  Activities during initialisation
   	//
   	///////////////////////////////////////////////////////////////////////////////////////////
-  	function nagvisual() {
+  	function __construct() {
     	// Read global settings
     	$this->arrSettings = $_SESSION['SETS'];
     	if (isset($_SESSION['domain'])) $this->intDomainId = $_SESSION['domain'];
@@ -229,7 +226,7 @@
 	///////////////////////////////////////////////////////////////////////////////////////////
   	function tfSecure($strKey) {
 		$strKey = stripslashes($strKey);
-		$strKey = mysql_real_escape_string($strKey);
+		$strKey = $strKey;
     	return($strKey);
   	}
 	
@@ -960,14 +957,16 @@
 			$strSQL  = "SELECT `tbl_service`.`id` AS `key`, CONCAT(`tbl_service`.`config_name`, ' - ', `tbl_service`.`service_description`) AS `value`, `active` 
 						FROM `tbl_service` WHERE $strDomainWhere1 AND `tbl_service`.`config_name` <> '' 
 						AND `tbl_service`.`config_name` IS NOT NULL AND `tbl_service`.`service_description` <> '' AND `tbl_service`.`service_description` IS NOT NULL 
-						AND `access_group` IN ($strAccess) ORDER BY `value";
+						AND `access_group` IN ($strAccess) ORDER BY `value`";
 		} else {
 	   		// Common statement
 			$strSQL  = "SELECT `id` AS `key`, `".$strTabField."` AS `value`, `config_id`, `active` FROM `".$strTable."` WHERE $strDomainWhere1
 				   		AND `".$strTabField."` <> '' AND `".$strTabField."` IS NOT NULL AND `access_group` IN ($strAccess) ORDER BY `".$strTabField."`";
+						
 		}
-		// Process data
+		// Process data		
 		$booReturn = $this->myDBClass->getDataArray($strSQL,$arrDataRaw,$intDataCount);
+		
 		if (($booReturn == false) && ($strSQL != "")) $this->strErrorMessage .= $this->myDBClass->strErrorMessage;
 		if ($strTable == 'tbl_group') {
 			$arrTemp = "";
@@ -975,9 +974,9 @@
 			$arrTemp['value'] = translate('Unrestricted access');
 			$arrData[] = $arrTemp;
 		}		
-		if ($booReturn && ($intDataCount != 0)) {
+		if ($booReturn && ($intDataCount != 0)) {		
 			foreach ($arrDataRaw AS $elem) {
-				$arrData[] = $elem;
+				$arrData[] = $elem;				
 			}
 			return(0);
 		} else {
@@ -1000,11 +999,12 @@
 			$strSQL = "SELECT * FROM `".$strLinkTable."` WHERE `idSlave`=".$this->dataId;
 		} else {
 			$strSQL = "SELECT * FROM `".$strLinkTable."` WHERE `idMaster`=".$this->dataId;
-		}
+		}		
 		// Process data
-		$booReturn  = $this->myDBClass->getDataArray($strSQL,$arrSelectedRaw,$intDataCount);
+		$booReturn  = $this->myDBClass->getDataArray($strSQL,$arrSelectedRaw,$intDataCount);	
 		if ($booReturn == false) $this->strErrorMessage .= $this->myDBClass->strErrorMessage;
 		if ($booReturn && ($intDataCount != 0)) {
+		
 			foreach($arrSelectedRaw AS $elem) {
 				// Multi tables
 				if ($strLinkTable == 'tbl_lnkServicegroupToService') {
diff -uNr nagiosql32.orig/functions/prepend_adm.php nagiosql32/functions/prepend_adm.php
--- nagiosql32.orig/functions/prepend_adm.php	2017-05-20 19:39:02.232000000 +0200
+++ nagiosql32/functions/prepend_adm.php	2017-02-09 15:55:19.000000000 +0100
@@ -1,18 +1,16 @@
 <?php
 ///////////////////////////////////////////////////////////////////////////////
 //
-// NagiosQL
+// NagiosQL Service Pack 3
+//
 ///////////////////////////////////////////////////////////////////////////////
 //
-// (c) 2005-2012 by Martin Willisegger
+// (c) 2016 by Fabio Lucchiari
 //
-// Project   : NagiosQL
-// Component : Preprocessing script
-// Website   : http://www.nagiosql.org
-// Date      : $LastChangedDate: 2013-01-10 09:46:11 +0100 (Do, 10. Jan 2013) $
-// Author    : $LastChangedBy: martin $
-// Version   : 3.2.0
-// Revision  : $LastChangedRevision: 1351 $
+// Project   : NagiosQL Service Pack 3
+// Component : Configuration verification
+// Website   : https://tecnologicasduvidas.blogspot.com.br
+// Date      : $LastChangedDate: 2017-01-02 16:00:00 -0300$
 //
 ///////////////////////////////////////////////////////////////////////////////
 //error_reporting(E_ALL);
@@ -100,18 +98,19 @@
 if ($myDBClass->error == true) {
   	$strErrorMessage .= translate('Error while connecting to database:')."::".$myDBClass->strErrorMessage;
   	$intError = 1;
+	
 }
 //
 // Get additional configuration from the table tbl_settings
 // ========================================================
 if ($intError == 0) {
-	$strSQL    = "SELECT `category`,`name`,`value` FROM `tbl_settings`";
-	$booReturn = $myDBClass->getDataArray($strSQL,$arrDataLines,$intDataCount);
+	$strSQL    = "SELECT `category`,`name`,`value` FROM `tbl_settings`";	
+	$booReturn = $myDBClass->getDataArray($strSQL,$arrDataLines,$intDataCount);	
 	if ($booReturn == false) {
   		$strErrorMessage .= translate('Error while selecting data from database:')."::".$myDBClass->strErrorMessage;
-		$intError 	 = 1;
+		$intError 	 = 1;		
 	} else if ($intDataCount != 0) {
-		if (isset($_SESSION['SETS']['data']['locale']) && ($_SESSION['SETS']['data']['locale'] != "")) $strStoreLanguage = $_SESSION['SETS']['data']['locale'];
+		if (isset($_SESSION['SETS']['data']['locale']) && ($_SESSION['SETS']['data']['locale'] != "")) $strStoreLanguage = $_SESSION['SETS']['data']['locale'];		
 		// Save additional configuration information
 		for ($i=0;$i<$intDataCount;$i++) {
     		// We use the path settings from file
@@ -264,7 +263,7 @@
 			$SETS['data']['locale'] 			= $strUserLocale;
 		}
 		// Update last login time
-		$strSQLUpdate = "UPDATE `tbl_user` SET `last_login`=NOW() WHERE `username`='".mysql_real_escape_string($chkInsName)."'";
+		$strSQLUpdate = "UPDATE `tbl_user` SET `last_login`=NOW() WHERE `username`='".$chkInsName."'";
 		$booReturn    = $myDBClass->insertData($strSQLUpdate);
 		$myDataClass->writeLog(translate('Webserver login successfull'));
 		$_SESSION['strLoginMessage'] = ""; 
@@ -273,11 +272,12 @@
   	}
 }
 if (($_SESSION['logged_in'] == 0) && isset($chkInsName) && ($chkInsName != "") && ($intError == 0)) {
-	$chkInsName   = mysql_real_escape_string($chkInsName);
-	$chkInsPasswd = mysql_real_escape_string($chkInsPasswd);
+
+	$chkInsName   = $chkInsName;
+	$chkInsPasswd = $chkInsPasswd;
 	$strSQL    = "SELECT * FROM `tbl_user` WHERE `username`='".$chkInsName."' 
 				  AND `password`=MD5('".$chkInsPasswd."') AND `active`='1'";
-  	$booReturn = $myDBClass->getDataArray($strSQL,$arrDataUser,$intDataCount);
+  	$booReturn = $myDBClass->getDataArray($strSQL,$arrDataUser,$intDataCount);	
   	if ($booReturn == false) {
     	$myVisClass->processMessage(translate('Error while selecting data from database:'),$strErrorMessage);
 		$myVisClass->processMessage($myDBClass->strErrorMessage,$strErrorMessage);
@@ -298,8 +298,8 @@
 			$_SESSION['SETS']['data']['locale'] = $strUserLocale;
 			$SETS['data']['locale'] 			= $strUserLocale;
 		}
-    	// Update last login time
-    	$strSQLUpdate = "UPDATE `tbl_user` SET `last_login`=NOW() WHERE `username`='".mysql_real_escape_string($chkInsName)."'";
+    	// Update last login time		
+    	$strSQLUpdate = "UPDATE `tbl_user` SET `last_login`=NOW() WHERE `username`='".$chkInsName."'";
     	$booReturn    = $myDBClass->insertData($strSQLUpdate);
     	$myDataClass->writeLog(translate('Login successfull'));
     	$_SESSION['strLoginMessage'] = "";
@@ -322,7 +322,7 @@
 // Review and update login
 // =======================
 if (($_SESSION['logged_in'] == 1) && ($intError == 0)) {
-  	$strSQL  = "SELECT * FROM `tbl_user` WHERE `username`='".mysql_real_escape_string($_SESSION['username'])."'";
+  	$strSQL  = "SELECT * FROM `tbl_user` WHERE `username`='".($_SESSION['username'])."'";
   	$booReturn = $myDBClass->getDataArray($strSQL,$arrDataUser,$intDataCount);
   	if ($booReturn == false) {
     	$myVisClass->processMessage(translate('Error while selecting data from database:'),$strErrorMessage);
diff -uNr nagiosql32.orig/install/functions/initial_settings.php nagiosql32/install/functions/initial_settings.php
--- nagiosql32.orig/install/functions/initial_settings.php	2012-02-28 14:35:54.942895000 +0100
+++ nagiosql32/install/functions/initial_settings.php	2017-02-09 15:55:19.000000000 +0100
@@ -3,22 +3,22 @@
 ?>
 ;///////////////////////////////////////////////////////////////////////////////
 ;
-; NagiosQL
+; NagiosQL Service Pack 3
 ;
 ;///////////////////////////////////////////////////////////////////////////////
 ;
-; Project  : NagiosQL
-; Component: Initial configuration settings
-; Website  : http://www.nagiosql.org
-; Date     : May 27, 2011, 2:35 pm
-; Version  : 3.2.0
-; $LastChangedRevision: 1058 $
+; (c) 2016 by Fabio Lucchiari
+; 
+; Project   : NagiosQL Service Pack 3
+; Component : Configuration verification
+; Website   : https://tecnologicasduvidas.blogspot.com.br
+; Date      : $LastChangedDate: 2017-01-02 16:00:00 -0300$
 ;
 ; DO NOT USE THIS FILE AS NAGIOSQL SETTINGS FILE!
 ;
 ;///////////////////////////////////////////////////////////////////////////////
 [db]
-type			= mysql
+type			= mysqli
 server			= localhost
 port			= 3306
 database		= db_nagiosql_v32
diff -uNr nagiosql32.orig/install/functions/install_class.php nagiosql32/install/functions/install_class.php
--- nagiosql32.orig/install/functions/install_class.php	2012-02-27 08:09:07.338196000 +0100
+++ nagiosql32/install/functions/install_class.php	2017-02-09 15:55:19.000000000 +0100
@@ -1,21 +1,18 @@
 <?php
 ///////////////////////////////////////////////////////////////////////////////
 //
-// NagiosQL
+// NagiosQL Service Pack 3
 //
 ///////////////////////////////////////////////////////////////////////////////
 //
-// (c) 2005-2012 by Martin Willisegger
+// (c) 2016 by Fabio Lucchiari
 //
-// Project   : NagiosQL
-// Component : Installer Class
-// Website   : http://www.nagiosql.org
-// Date      : $LastChangedDate: 2011-12-08 07:35:31 +0100 (Do, 08. Dez 2011) $
-// Author    : $LastChangedBy: martin $
-// Version   : 3.2.0
-// Revision  : $LastChangedRevision: 1141 $
+// Project   : NagiosQL Service Pack 3
+// Component : Configuration verification
+// Website   : https://tecnologicasduvidas.blogspot.com.br
+// Date      : $LastChangedDate: 2017-01-02 16:00:00 -0300$
 //
-///////////////////////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
 //
 ///////////////////////////////////////////////////////////////////////////////////////////////
 //
@@ -39,7 +36,12 @@
   	//  Activities during class initialization
   	//
   	///////////////////////////////////////////////////////////////////////////////////////////
-  	function naginstall() {
+  	function __construct() {
+		  $host;
+		  $port;
+		  $user;
+		  $pass;		 
+		  $mysqli;		
 
   	}
 	///////////////////////////////////////////////////////////////////////////////////////////
@@ -82,19 +84,26 @@
   	//  Return values:		Status variable (0=ok,1=failed)
 	//
 	///////////////////////////////////////////////////////////////////////////////////////////
-	function openAdmDBSrv(&$strStatusMessage,&$strErrorMessage,$intMode=0) {
-		if ($_SESSION['install']['dbtype'] == "mysql") {
+	function openAdmDBSrv(&$strStatusMessage,&$strErrorMessage,$intMode=0) {		
+		if ($intMode == 1 ) {
+			$this->host = $_SESSION['install']['dbserver'];
+			$this->port = $_SESSION['install']['dbport'];
+			$this->user = $_SESSION['install']['dbuser'];
+			$this->pass = $_SESSION['install']['dbpass'];	
+		} else {
+			$this->host = $_SESSION['install']['dbserver'];
+			$this->port = $_SESSION['install']['dbport'];
+			$this->user = $_SESSION['install']['admuser'];
+			$this->pass = $_SESSION['install']['admpass'];
+		}		
+		if ($_SESSION['install']['dbtype'] == "mysqli") {
 			$intStatus  = 0;
 			// Connect to database server
-			if ($intMode == 1 ) {
-				$resDBSLink = @mysql_connect($_SESSION['install']['dbserver'].":".$_SESSION['install']['dbport'],$_SESSION['install']['dbuser'],$_SESSION['install']['dbpass']);
-			} else {
-				$resDBSLink = @mysql_connect($_SESSION['install']['dbserver'].":".$_SESSION['install']['dbport'],$_SESSION['install']['admuser'],$_SESSION['install']['admpass']);
-			}
-			if (!$resDBSLink) {
-				$strErrorMessage .= translate('Error while connecting to database:')."<br>".mysql_error()."<br>\n";
-				$intStatus = 1;
-			}
+			$this->mysqli = new mysqli($this->host.":".$this->port, $this->user, $this->pass);				
+			if ($this->mysqli->connect_error) {
+				$strErrorMessage .= translate('Error while connecting to database:')."<br>".$this->mysqli->connect_errno."<br>\n";
+				$intStatus = 1;					
+			}					
 		} else if ($_SESSION['install']['dbtype'] == "pgsql") {
 			// Connect to database server
 			if ($intMode == 1 ) {
@@ -130,14 +139,14 @@
   	//  Return values:		Status variable (0=ok,1=failed)
 	//
 	///////////////////////////////////////////////////////////////////////////////////////////
-	function openDatabase(&$strStatusMessage,&$strErrorMessage,$intMode=0) {
-		if ($_SESSION['install']['dbtype'] == "mysql") {
-			$intStatus  = 0;
-			// Connect to database
-			$resDBId = @mysql_select_db($_SESSION['install']['dbname']);	
+	function openDatabase(&$strStatusMessage,&$strErrorMessage,$intMode=0) {   	
+		if ($_SESSION['install']['dbtype'] == "mysqli") {
+			$intStatus  = 0;			
+			// Connect to database	
+			$resDBId = $this->mysqli->select_db($_SESSION['install']['dbname']);	
 			if (!$resDBId) {
-				$strErrorMessage .= translate('Error while connecting to database:')."<br>".mysql_error()."<br>\n";
-				$intStatus = 1;
+				$strErrorMessage .= translate('Error while connecting to database:')."<br>".mysqli_error($this->mysqli)."<br>\n";				
+				$intStatus = 1;						
 			}
 		} else if ($_SESSION['install']['dbtype'] == "pgsql") {
 			// Connect to database
@@ -152,16 +161,18 @@
 			}
 		} else {
 			$strErrorMessage .= translate("Database type not defined!")." (".$_SESSION['install']['dbtype'].")<br>\n";
-			$strStatusMessage = "<span class=\"red\">".translate("failed")."</span>";
+			$strStatusMessage = "<span class=\"red\">".translate("failed")."</span>";			
 			return(1);	
 		}
 		if ($intStatus == 0) {
 			$strStatusMessage = "<span class=\"green\">".translate("passed")."</span>";
-			return(0);
+			return(0);			
 		} else {
-			$strStatusMessage = "<span class=\"red\">".translate("failed")."</span>";
-			return(1);
+			$strStatusMessage = "<span class=\"red\">".translate("failed")."</span>";			
+			return(1);			
 		}
+		
+		
 	}
 	///////////////////////////////////////////////////////////////////////////////////////////
 	//  Function: Check database version
@@ -176,10 +187,13 @@
 	///////////////////////////////////////////////////////////////////////////////////////////
 	function checkDBVersion(&$strStatusMessage,&$strErrorMessage,&$setVersion) {
 		// Read version string from DB
-		if ($_SESSION['install']['dbtype'] == "mysql") {
-			$setVersion = @mysql_result(@mysql_query("SHOW VARIABLES LIKE 'version'"),0,1);
-			$strDBError = mysql_error();
-			$intVersion = version_compare($setVersion,"4.1.0");
+		if ($_SESSION['install']['dbtype'] == "mysqli") {
+			$q = $this->mysqli->query("SHOW VARIABLES LIKE 'version'");
+			while ($row = $q->fetch_array()) {
+				$setVersion = $row['Value'];
+			}			
+			$strDBError = mysqli_error($this->mysqli);
+			$intVersion = version_compare($setVersion,"4.1.0");				
 		} else if ($_SESSION['install']['dbtype'] == "pgsql") {
 			$setVersion = @pg_fetch_result(@pg_query("SHOW VARIABLES LIKE 'version'"),0,1);
 			$strDBError = pg_last_error();
@@ -193,17 +207,17 @@
 			// Is the currrent version supported?
 			if ($intVersion >=0) {
 				$strStatusMessage = "<span class=\"green\">".translate("supported")."</span>";
-				return(0);
+				return(0);				
 			} else {
 				$strStatusMessage = "<span class=\"red\">".translate("not supported")."</span>";
-				return(1);
+				return(1);				
 			}
 		} else {
 			$strErrorMessage .=	$strDBError."<br>\n";
 			$strStatusMessage = "<span class=\"red\">".translate("failed")."</span>";
 			$setVersion		  = "unknown";
 			return(1);
-		}
+		}		
 	}
 	///////////////////////////////////////////////////////////////////////////////////////////
 	//  Function: Check NagiosQL version
@@ -219,7 +233,7 @@
 	///////////////////////////////////////////////////////////////////////////////////////////
 	function checkQLVersion(&$strStatusMessage,&$strErrorMessage,&$arrUpdate,&$setVersion) {
 		// Read version string from DB
-		if ($_SESSION['install']['dbtype'] == "mysql") {
+		if ($_SESSION['install']['dbtype'] == "mysqli") {
 			$setVersion = @mysql_result(@mysql_query("SELECT `value` FROM `tbl_settings` WHERE `category`='db' AND `name`='version'"),0,0);
 			$strDBError = mysql_error();
 		} else if ($_SESSION['install']['dbtype'] == "pgsql") {
@@ -293,9 +307,9 @@
 	///////////////////////////////////////////////////////////////////////////////////////////
 	function dropDB(&$strStatusMessage,&$strErrorMessage) {
 		// Drop database
-		if ($_SESSION['install']['dbtype'] == "mysql") {
-			$booReturn  = @mysql_query("DROP DATABASE `".$_SESSION['install']['dbname']."`");
-			$strDBError = mysql_error();
+		if ($_SESSION['install']['dbtype'] == "mysqli") {
+			$booReturn = $this->mysqli->query("DROP DATABASE `".$_SESSION['install']['dbname']."`");
+			$strDBError = mysqli_error($this->mysqli);			
 		} else if ($_SESSION['install']['dbtype'] == "pgsql") {
 			$setVersion = @pg_query("DROP DATABASE `".$_SESSION['install']['dbname']."`");
 			$strDBError = pg_last_error();
@@ -325,9 +339,9 @@
 	///////////////////////////////////////////////////////////////////////////////////////////
 	function createDB(&$strStatusMessage,&$strErrorMessage) {
 		// Create database
-		if ($_SESSION['install']['dbtype'] == "mysql") {
-			$booReturn  = @mysql_query("CREATE DATABASE `".$_SESSION['install']['dbname']."` DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_unicode_ci");
-			$strDBError = mysql_error();
+		if ($_SESSION['install']['dbtype'] == "mysqli") {
+			$booReturn = $this->mysqli->query("CREATE DATABASE `".$_SESSION['install']['dbname']."` DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_unicode_ci");
+			$strDBError = mysqli_error($this->mysqli);		
 		} else if ($_SESSION['install']['dbtype'] == "pgsql") {
 			$setVersion = @pg_query("CREATE DATABASE `".$_SESSION['install']['dbname']."` DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_unicode_ci");
 			$strDBError = pg_last_error();
@@ -357,31 +371,31 @@
 	///////////////////////////////////////////////////////////////////////////////////////////
 	function grantDBUser(&$strStatusMessage,&$strErrorMessage) {
 		// Grant user
-		if ($_SESSION['install']['dbtype'] == "mysql") {
+		if ($_SESSION['install']['dbtype'] == "mysqli") {
 			// does the user exist?
 			$intUserError = 0;
-			$resQuery  = @mysql_query("FLUSH PRIVILEGES");
-			$resQuery1 = @mysql_query("SELECT * FROM `mysql`.`user` WHERE `Host`='".$_SESSION['install']['localsrv']."' AND `User`='".$_SESSION['install']['dbuser']."'");
-			if ($resQuery1 && (mysql_num_rows($resQuery1) == 0)) {
-				$resQuery2 = @mysql_query("CREATE USER '".$_SESSION['install']['dbuser']."'@'".$_SESSION['install']['localsrv']."' IDENTIFIED BY '".$_SESSION['install']['dbpass']."'");
+			$resQuery  = $this->mysqli->query("FLUSH PRIVILEGES");
+			$resQuery1  = $this->mysqli->query("SELECT * FROM `mysql`.`user` WHERE `Host`='".$_SESSION['install']['localsrv']."' AND `User`='".$_SESSION['install']['dbuser']."'");
+			if ($resQuery1 && (mysqli_num_rows($resQuery1) == 0)) {
+				$resQuery2 = $this->mysqli->query("CREATE USER '".$_SESSION['install']['dbuser']."'@'".$_SESSION['install']['localsrv']."' IDENTIFIED BY '".$_SESSION['install']['dbpass']."'");
 				if (!$resQuery2) {
 					$intUserError 	= 1;
-					$strDBError 	= mysql_error();
+					$strDBError 	= mysqli_error($this->mysqli);
 				}
-			} else if (mysql_error() == ""){
+			} else if (mysqli_error($this->mysqli) == ""){
 				$intUserError = 2;
 			} else {
 				$intUserError 	= 1;
-				$strDBError 	= mysql_error();
+				$strDBError 	= mysqli_error($this->mysqli);
 			}
 			if ($intUserError != 1) {
-				$resQuery = @mysql_query("FLUSH PRIVILEGES");
-				$resQuery = @mysql_query("GRANT SELECT, INSERT, UPDATE, DELETE, LOCK TABLES ON `".$_SESSION['install']['dbname']."`.* TO '".$_SESSION['install']['dbuser']."'@'".$_SESSION['install']['localsrv']."'");
+				$resQuery = $this->mysqli->query("FLUSH PRIVILEGES");
+				$resQuery = $this->mysqli->query("GRANT SELECT, INSERT, UPDATE, DELETE, LOCK TABLES ON `".$_SESSION['install']['dbname']."`.* TO '".$_SESSION['install']['dbuser']."'@'".$_SESSION['install']['localsrv']."'");
 				if (!$resQuery) {
 					$intUserError 	= 1;
-					$strDBError 	= mysql_error();
+					$strDBError 	= mysqli_error($this->mysqli);
 				}
-				$resQuery = @mysql_query("FLUSH PRIVILEGES");
+				$resQuery = $this->mysqli->query("FLUSH PRIVILEGES");
 			}
 		} else if ($_SESSION['install']['dbtype'] == "pgsql") {
 			// does the user exist?
@@ -450,7 +464,7 @@
 							$strSqlCommand = "";
 							$intSQLError   = 0;
 							$intLineCount  = 0;
-							if ($_SESSION['install']['dbtype'] == "mysql") $booReturn = @mysql_query("SET NAMES `utf8`");
+							if ($_SESSION['install']['dbtype'] == "mysqli") $booReturn = $this->mysqli->query("SET NAMES `utf8`");
 							if ($_SESSION['install']['dbtype'] == "pgsql") $booReturn = @pg_query("SET NAMES `utf8`");
 							while (!feof($filSqlNew)) {
 								$strLine = fgets($filSqlNew);
@@ -461,11 +475,11 @@
 								if (substr($strLine,0,2) == "--") continue; // skip comment lines
 								$strSqlCommand .= $strLine;								
 								if (substr($strSqlCommand,-1) == ";") {
-									if ($_SESSION['install']['dbtype'] == "mysql") $booReturn = @mysql_query($strSqlCommand);
+									if ($_SESSION['install']['dbtype'] == "mysqli") $booReturn = $this->mysqli->query($strSqlCommand);
 									if ($_SESSION['install']['dbtype'] == "pgsql") $booReturn = @pg_query($strSqlCommand);
 									if (!$booReturn) {
 										$intSQLError = 1;
-										if ($_SESSION['install']['dbtype'] == "mysql") $strErrorMessage .= mysql_error()."<br>\n";
+										if ($_SESSION['install']['dbtype'] == "mysqli") $strErrorMessage .= mysqli_error($this->mysqli)."<br>\n";
 										if ($_SESSION['install']['dbtype'] == "pgsql") $strErrorMessage .= pg_last_error()."<br>\n";
 										$intError = 1;
 									}
@@ -514,14 +528,18 @@
 	///////////////////////////////////////////////////////////////////////////////////////////
 	function createNQLAdmin(&$strStatusMessage,&$strErrorMessage) {
 		// Create admin user
-		$strSQL  = "SELECT `id` FROM `tbl_language` WHERE `locale`='".$_SESSION['install']['locale']."'";
-		$intLang = @mysql_result(@mysql_query($strSQL),0,0)+0;
+		$strSQL  = "SELECT `id` FROM `tbl_language` WHERE `locale`='".$_SESSION['install']['locale']."'";		
+		$q = $this->mysqli->query($strSQL);
+			while ($row = $q->fetch_array()) {
+				$intLang = $row['id'];
+			}		
+		//$intLang = @mysql_result(@mysql_query($strSQL),0,0)+0;
 		if ($intLang == 0) $intLang = 1;
 		$strSQL  = "INSERT INTO `tbl_user` (`id`, `username`, `alias`, `password`, `admin_enable`, `wsauth`, `active`, `nodelete`, `language`, `domain`, `last_login`, `last_modified`)
 					VALUES (1, '".$_SESSION['install']['qluser']."', 'Administrator', md5('".$_SESSION['install']['qlpass']."'), '1', '0', '1', '1', '".$intLang."', '1', '', NOW());";
-		if ($_SESSION['install']['dbtype'] == "mysql") {
-			$booReturn  = @mysql_query($strSQL);
-			$strDBError = mysql_error();
+		if ($_SESSION['install']['dbtype'] == "mysqli") {
+			$booReturn  = $this->mysqli->query($strSQL);
+			$strDBError = mysqli_error($this->mysqli);
 		} else if ($_SESSION['install']['dbtype'] == "pgsql") {
 			$setVersion = @pg_query($strSQL);
 			$strDBError = pg_last_error();
@@ -562,10 +580,10 @@
 		foreach ($arrInitial AS $elem) {
 			$strSQL1 = "SELECT `value` FROM `tbl_settings` WHERE `category`='".$elem['category']."' AND `name`='".$elem['name']."'";
 			$strSQL2 = "INSERT INTO `tbl_settings` (`category`, `name`, `value`) VALUES ('".$elem['category']."', '".$elem['name']."', '".$elem['value']."')";
-			if ($_SESSION['install']['dbtype'] == "mysql") {
-				$resQuery1 = @mysql_query($strSQL1);
-				if ($resQuery1 && (mysql_num_rows($resQuery1) == 0)) {	
-					$resQuery2 = @mysql_query($strSQL2);
+			if ($_SESSION['install']['dbtype'] == "mysqli") {
+				$resQuery1 = $this->mysqli->query($strSQL1);
+				if ($resQuery1 && (mysqli_num_rows($resQuery1) == 0)) {	
+					$resQuery2 = $this->mysqli->query($strSQL2);
 					if (!$resQuery2) {
 						$strStatusMessage = "<span class=\"red\">".translate("failed")."</span>";
 						$strErrorMessage .=	translate("Inserting initial data to settings database has failed:")."<br>".mysql_error()."<br>\n";
@@ -606,9 +624,9 @@
 		$arrSettings[] 	= array('category'=>'data','name'=>'locale','value'=>$_SESSION['install']['locale']);
 		foreach ($arrSettings AS $elem) {
 			$strSQL	= "UPDATE `tbl_settings` SET `value`='".$elem['value']."' WHERE `category` = '".$elem['category']."' AND `name` = '".$elem['name']."'";
-			if ($_SESSION['install']['dbtype'] == "mysql") {
-				$resQuery = @mysql_query($strSQL);
-				if (mysql_error() != '') {
+			if ($_SESSION['install']['dbtype'] == "mysqli") {
+				$resQuery = $this->mysqli->query($strSQL);
+				if (mysqli_error($this->mysqli) != '') {
 					$strStatusMessage = "<span class=\"red\">".translate("failed")."</span>";
 					$strErrorMessage .=	translate("Inserting initial data to settings database has failed:")." ".mysql_error()."<br>\n";
 					return(1);
@@ -706,11 +724,11 @@
 					`conffile`='".$strNagiosPath."nagios.cfg',
 					`last_modified`=NOW()
 				   WHERE `target`='localhost'";
-		if ($_SESSION['install']['dbtype'] == "mysql") {
-			$resQuery1 = @mysql_query($strSQL);
+		if ($_SESSION['install']['dbtype'] == "mysqli") {
+			$resQuery1 = $this->mysqli->query($strSQL);
 			if (!$resQuery1) {	
 				$strStatusMessage = "<span class=\"red\">".translate("failed")."</span>";
-				$strErrorMessage .=	translate("Inserting path data to database has failed:")." ".mysql_error()."<br>\n";
+				$strErrorMessage .=	translate("Inserting path data to database has failed:")." ".mysqli_error($this->mysqli)."<br>\n";
 				return(1);
 			}
 		} else if ($_SESSION['install']['dbtype'] == "pgsql") {
@@ -758,7 +776,7 @@
 	///////////////////////////////////////////////////////////////////////////////////////////
 	function convQLDB(&$strStatusMessage,&$strErrorMessage) {
 		// Read version string from DB
-		if ($_SESSION['install']['dbtype'] == "mysql") {
+		if ($_SESSION['install']['dbtype'] == "mysqli") {
 			$resQuery   = @mysql_query("ALTER DATABASE `".$_SESSION['install']['dbname']."` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci");
 			$strDBError = mysql_error();
 		} else if ($_SESSION['install']['dbtype'] == "pgsql") {
@@ -790,7 +808,7 @@
 	///////////////////////////////////////////////////////////////////////////////////////////
 	function convQLDBTables(&$strStatusMessage,&$strErrorMessage) {
 		// Read version string from DB
-		if ($_SESSION['install']['dbtype'] == "mysql") {
+		if ($_SESSION['install']['dbtype'] == "mysqli") {
 			$resQuery  = @mysql_query("SHOW TABLES FROM `".$_SESSION['install']['dbname']);
 			$strDBError = mysql_error();
 			if ($resQuery && ($strDBError == "")) {
@@ -836,7 +854,7 @@
 	///////////////////////////////////////////////////////////////////////////////////////////
 	function convQLDBFields(&$strStatusMessage,&$strErrorMessage) {
 		// Read version string from DB
-		if ($_SESSION['install']['dbtype'] == "mysql") {
+		if ($_SESSION['install']['dbtype'] == "mysqli") {
 			$resQuery  = @mysql_query("SHOW TABLES FROM `".$_SESSION['install']['dbname']);
 			$strDBError = mysql_error();
 			if ($resQuery && ($strDBError == "")) {
diff -uNr nagiosql32.orig/install/functions/prepend_install.php nagiosql32/install/functions/prepend_install.php
--- nagiosql32.orig/install/functions/prepend_install.php	2012-02-21 14:10:41.579203000 +0100
+++ nagiosql32/install/functions/prepend_install.php	2017-02-09 15:55:19.000000000 +0100
@@ -1,18 +1,16 @@
 <?php
 ///////////////////////////////////////////////////////////////////////////////
 //
-// NagiosQL
+// NagiosQL Service Pack 3
+//
 ///////////////////////////////////////////////////////////////////////////////
 //
-// (c) 2005-2012 by Martin Willisegger
+// (c) 2016 by Fabio Lucchiari
 //
-// Project   : NagiosQL
-// Component : Installer preprocessing script
-// Website   : http://www.nagiosql.org
-// Date      : $LastChangedDate: 2012-01-04 15:40:03 +0100 (Mi, 04. Jan 2012) $
-// Author    : $LastChangedBy: martin $
-// Version   : 3.2.0
-// Revision  : $LastChangedRevision: 1154 $
+// Project   : NagiosQL Service Pack 3
+// Component : Configuration verification
+// Website   : https://tecnologicasduvidas.blogspot.com.br
+// Date      : $LastChangedDate: 2017-01-02 16:00:00 -0300$
 //
 ///////////////////////////////////////////////////////////////////////////////
 error_reporting(E_ALL);
@@ -22,10 +20,7 @@
 $strErrorMessage	= "";  // All error messages (red)
 $strInfoMessage		= "";  // All information messages (green)
 //
-// Start PHP session
-// =================
-session_start('nagiosql_install');
-//
+
 // Include external function/class files
 // =====================================
 include("functions/install_class.php");
diff -uNr nagiosql32.orig/install/index.php nagiosql32/install/index.php
--- nagiosql32.orig/install/index.php	2012-02-28 18:14:54.552932000 +0100
+++ nagiosql32/install/index.php	2017-02-09 15:55:19.000000000 +0100
@@ -1,19 +1,24 @@
 <?php
+// Start session
+// ===============
+
+if (session_status() == PHP_SESSION_NONE) {
+    session_start();
+}
+
+
 ///////////////////////////////////////////////////////////////////////////////
 //
-// NagiosQL
+// NagiosQL Service Pack 3
 //
 ///////////////////////////////////////////////////////////////////////////////
 //
-// (c) 2005-2012 by Martin Willisegger
+// (c) 2016 by Fabio Lucchiari
 //
-// Project   : NagiosQL
-// Component : Installer main script
-// Website   : http://www.nagiosql.org
-// Date      : $LastChangedDate: 2012-02-28 18:14:54 +0100 (Tue, 28 Feb 2012) $
-// Author    : $LastChangedBy: martin $
-// Version   : 3.2.0
-// Revision  : $LastChangedRevision: 1261 $
+// Project   : NagiosQL Service Pack 3
+// Component : Configuration verification
+// Website   : https://tecnologicasduvidas.blogspot.com.br
+// Date      : $LastChangedDate: 2017-01-02 16:00:00 -0300$
 //
 ///////////////////////////////////////////////////////////////////////////////
 //
@@ -23,7 +28,7 @@
 $preEncode	= 'utf-8';
 $preLocale 	= "../config/locale";
 $filConfig  = "../config/settings.php";
-$preDBType  = "mysql";
+$preDBType  = "mysqli";
 $strLangOpt = "";
 $intError 	= 0;
 $intUpdate  = 0;
@@ -33,10 +38,8 @@
 require("functions/prepend_install.php");
 require("../functions/translator.php");
 //
-// Restart session
-// ===============
-session_destroy();
-session_start('nagiosql_install');
+
+
 //
 // POST parameters
 // ===============
@@ -89,8 +92,8 @@
 			$preDBType = "pgsql";
 			$_SESSION['install']['dbtype'] = $preDBType;
 		}
-		if ($preDBType == "mysql") {
-			if (extension_loaded('mysql')) {
+		if ($preDBType == "mysqli") {
+			if (extension_loaded('mysqli')) {
 				// Include mysql class
 				include("../functions/mysql_class.php");
 				// Initialize mysql class
@@ -158,7 +161,7 @@
 $arrTemplate['TEXT_PHP_REQ_3']	= translate("PHP Module:")." filter";
 //$arrTemplate['TEXT_PHP_REQ_4']	= translate("PHP Module:")." XML";
 //$arrTemplate['TEXT_PHP_REQ_5']	= translate("PHP Module:")." SimpleXML";
-$arrTemplate['TEXT_PHP_REQ_6']	= translate("PHP Module:")." MySQL";
+$arrTemplate['TEXT_PHP_REQ_6']	= translate("PHP Module:")." MySQLi";
 //$arrTemplate['TEXT_PHP_REQ_7']	= translate("PHP Module:")." PgSQL ".translate("(optional)");
 $arrTemplate['TEXT_PHP_REQ_8']	= translate("PHP Module:")." FTP ".translate("(optional)");
 $arrTemplate['TEXT_PHP_REQ_9']	= translate("PHP Module:")." curl ".translate("(optional)");
@@ -167,7 +170,7 @@
 $arrTemplate['TEXT_INI_REQ_1']	= translate("file_uploads on (for upload features)");
 $arrTemplate['TEXT_INI_REQ_2']	= translate("session.auto_start needs to be off");
 $arrTemplate['TEXT_PART_7']		= translate("A MySQL database server");
-$arrTemplate['TEXT_PART_8']		= translate("Nagios 2.x/3.x");
+$arrTemplate['TEXT_PART_8']		= translate("Nagios 2.x/3.x/4.x");
 $arrTemplate['LOCALE']			= $chkLocale;
 $arrTemplate['ONLINE_DOC'] 		= translate("Online Documentation");
 //
diff -uNr nagiosql32.orig/install/install.php nagiosql32/install/install.php
--- nagiosql32.orig/install/install.php	2012-02-21 14:10:41.579203000 +0100
+++ nagiosql32/install/install.php	2017-02-09 15:55:19.000000000 +0100
@@ -1,19 +1,17 @@
 <?php
+session_start();
 ///////////////////////////////////////////////////////////////////////////////
 //
-// NagiosQL
+// NagiosQL Service Pack 3
 //
 ///////////////////////////////////////////////////////////////////////////////
 //
-// (c) 2005-2012 by Martin Willisegger
+// (c) 2016 by Fabio Lucchiari
 //
-// Project   : NagiosQL
-// Component : Installer script - check page
-// Website   : http://www.nagiosql.org
-// Date      : $LastChangedDate: 2012-02-21 14:10:41 +0100 (Tue, 21 Feb 2012) $
-// Author    : $LastChangedBy: martin $
-// Version   : 3.2.0
-// Revision  : $LastChangedRevision: 1229 $
+// Project   : NagiosQL Service Pack 3
+// Component : Configuration verification
+// Website   : https://tecnologicasduvidas.blogspot.com.br
+// Date      : $LastChangedDate: 2017-01-02 16:00:00 -0300$
 //
 ///////////////////////////////////////////////////////////////////////////////
 //
diff -uNr nagiosql32.orig/install/step1.php nagiosql32/install/step1.php
--- nagiosql32.orig/install/step1.php	2012-02-25 17:48:16.106464000 +0100
+++ nagiosql32/install/step1.php	2017-02-09 15:55:19.000000000 +0100
@@ -1,19 +1,16 @@
 <?php
 ///////////////////////////////////////////////////////////////////////////////
 //
-// NagiosQL
+// NagiosQL Service Pack 3
 //
 ///////////////////////////////////////////////////////////////////////////////
 //
-// (c) 2005-2012 by Martin Willisegger
+// (c) 2016 by Fabio Lucchiari
 //
-// Project   : NagiosQL
-// Component : Installer script - step 1
-// Website   : http://www.nagiosql.org
-// Date      : $LastChangedDate: 2012-02-25 17:48:16 +0100 (Sat, 25 Feb 2012) $
-// Author    : $LastChangedBy: martin $
-// Version   : 3.2.0
-// Revision  : $LastChangedRevision: 1252 $
+// Project   : NagiosQL Service Pack 3
+// Component : Configuration verification
+// Website   : https://tecnologicasduvidas.blogspot.com.br
+// Date      : $LastChangedDate: 2017-01-02 16:00:00 -0300$
 //
 ///////////////////////////////////////////////////////////////////////////////
 //
@@ -44,7 +41,7 @@
 //	'Postgres'	=> 'pgsql'
 //);
 $arrSupportedDBs = array (
-	'MySQL'		=> 'mysql'
+	'MySQLi'		=> 'mysqli'
 );
 
 $arrIniCheck = array (
diff -uNr nagiosql32.orig/libraries/pear/HTML/Template/IT.php nagiosql32/libraries/pear/HTML/Template/IT.php
--- nagiosql32.orig/libraries/pear/HTML/Template/IT.php	2010-10-31 18:44:44.400158000 +0100
+++ nagiosql32/libraries/pear/HTML/Template/IT.php	2017-02-09 15:55:19.000000000 +0100
@@ -407,7 +407,8 @@
      * @see      setRoot()
      * @access   public
      */
-    function HTML_Template_IT($root = '', $options = null)
+	function __construct($root = '', $options = null) 
+    //function HTML_Template_IT($root = '', $options = null)
     {
         if (!is_null($options)) {
             $this->setOptions($options);
@@ -473,7 +474,7 @@
         if (is_array($options)) {
             foreach ($options as $option => $value) {
                 $error = $this->setOption($option, $value);
-                if (PEAR::isError($error)) {
+                if ((new PEAR)->isError($error)) {
                     return $error;
                 }
             }
@@ -560,10 +561,11 @@
         static $regs, $values;
 
         if (!isset($this->blocklist[$block])) {
-            return PEAR::raiseError(
+            return (new PEAR)->raiseError(
                 $this->errorMessage(IT_BLOCK_NOT_FOUND) . '"' . $block . "'",
                 IT_BLOCK_NOT_FOUND
             );
+			
         }
 
         if ($block == '__global__') {
@@ -1022,8 +1024,9 @@
                 if (isset($this->blocklist[$blockname])) {
                     $msg = $this->errorMessage(IT_BLOCK_DUPLICATE, $blockname);
 
-                    $this->err[] = PEAR::raiseError($msg, IT_BLOCK_DUPLICATE);
-
+                    //$this->err[] = PEAR::raiseError($msg, IT_BLOCK_DUPLICATE);	
+						
+					$this->err[] = (new PEAR)->raiseError($msg, IT_BLOCK_DUPLICATE); 
                     $this->flagBlocktrouble = true;
                 }
 
@@ -1088,10 +1091,10 @@
         $content = fread($fh, $fsize);
         fclose($fh);
 
-        return preg_replace(
-            "#<!-- INCLUDE (.*) -->#ime",
-            "\$this->getFile('\\1')",
-            $content
+        return preg_replace_callback(
+           "#<!-- INCLUDE (.*) -->#im",
+			array($this, 'getFile'),
+			$content
         );
     } // end func getFile
 
@@ -1174,8 +1177,8 @@
                 IT_UNKNOWN_OPTION           => 'Unknown option'
             );
         }
-
-        if (PEAR::isError($value)) {
+		
+        if ((new PEAR)->isError($value)) {
             $value = $value->getCode();
         }
 
diff -uNr nagiosql32.orig/libraries/pear/PEAR.php nagiosql32/libraries/pear/PEAR.php
--- nagiosql32.orig/libraries/pear/PEAR.php	2010-10-31 18:44:44.400158000 +0100
+++ nagiosql32/libraries/pear/PEAR.php	2017-02-09 15:55:19.000000000 +0100
@@ -152,8 +152,7 @@
      * @access public
      * @return void
      */
-    function PEAR($error_class = null)
-    {
+	function __construct($error_class = null) {    
         $classname = strtolower(get_class($this));
         if ($this->_debug) {
             print "PEAR constructor called, class=$classname\n";
@@ -863,7 +862,7 @@
      * @access public
      *
      */
-    function PEAR_Error($message = 'unknown error', $code = null,
+    function __construct($message = 'unknown error', $code = null,
                         $mode = null, $options = null, $userinfo = null)
     {
         if ($mode === null) {
diff -uNr nagiosql32.orig/README.md nagiosql32/README.md
--- nagiosql32.orig/README.md	1970-01-01 01:00:00.000000000 +0100
+++ nagiosql32/README.md	2017-02-09 15:55:19.000000000 +0100
@@ -0,0 +1,6 @@
+# nagiosql service pack 3
+
+Created by Fabio Lucchiari
+
+Updating files from nagiosql for compatibility with Nagios Core 4x, mysqli and PHP 7
+
