From 2cb1563f63386b35a69e460051aa9b4a2851d104 Mon Sep 17 00:00:00 2001 From: ftimme <ft@falkotimme.com> Date: Wed, 30 May 2012 07:30:44 -0400 Subject: [PATCH] - Added (clickable) placeholders to client messaging function. - Added check so that the client password isn't inserted into the message (for security reasons). --- server/lib/app.inc.php | 126 ++++++++++++++++++++++------------------- 1 files changed, 68 insertions(+), 58 deletions(-) diff --git a/server/lib/app.inc.php b/server/lib/app.inc.php old mode 100644 new mode 100755 index 697fd23..87f964dc --- a/server/lib/app.inc.php +++ b/server/lib/app.inc.php @@ -28,17 +28,20 @@ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +//* Set timezone +if(isset($conf['timezone']) && $conf['timezone'] != '') date_default_timezone_set($conf['timezone']); + class app { - var $loaded_modules = array(); - var $loaded_plugins = array(); + var $loaded_modules = array(); + var $loaded_plugins = array(); - function app() { + function __construct() { global $conf; - if($conf["start_db"] == true) { - $this->load('db_'.$conf["db_type"]); + if($conf['start_db'] == true) { + $this->load('db_'.$conf['db_type']); $this->db = new db; /* @@ -46,13 +49,8 @@ if we are in a multiserver setup */ - if($conf["dbmaster_host"] != '' && $conf["dbmaster_host"] != $conf["db_host"]) { - $this->dbmaster = new db; - if($this->dbmaster->linkId) $this->dbmaster->closeConn(); - $this->dbmaster->dbHost = $conf["dbmaster_host"]; - $this->dbmaster->dbName = $conf["dbmaster_database"]; - $this->dbmaster->dbUser = $conf["dbmaster_user"]; - $this->dbmaster->dbPass = $conf["dbmaster_password"]; + if($conf['dbmaster_host'] != '' && ($conf['dbmaster_host'] != $conf['db_host'] || ($conf['dbmaster_host'] == $conf['db_host'] && $conf['dbmaster_database'] != $conf['db_database']))) { + $this->dbmaster = new db($conf['dbmaster_host'], $conf['dbmaster_user'], $conf['dbmaster_password'], $conf['dbmaster_database']); } else { $this->dbmaster = $this->db; } @@ -63,34 +61,36 @@ } function uses($classes) { - global $conf; - $cl = explode(',',$classes); - if(is_array($cl)) { - foreach($cl as $classname) { - if(!is_object($this->$classname)) { - if(is_file($conf['classpath'] . "/".$classname.".inc.php") && !is_link($conf['classpath'] . "/".$classname.".inc.php")) { - include_once($conf['classpath'] . "/".$classname.".inc.php"); - $this->$classname = new $classname; - } + global $conf; + + $cl = explode(',',$classes); + if(is_array($cl)) { + foreach($cl as $classname) { + if(!@is_object($this->$classname)) { + if(is_file($conf['classpath'].'/'.$classname.'.inc.php') && (DEVSYSTEM || !is_link($conf['classpath'].'/'.$classname.'.inc.php'))) { + include_once($conf['classpath'].'/'.$classname.'.inc.php'); + $this->$classname = new $classname; } } } + } } function load($classes) { - global $conf; - $cl = explode(',',$classes); - if(is_array($cl)) { - foreach($cl as $classname) { - if(is_file($conf['classpath'] . "/".$classname.".inc.php") && !is_link($conf['classpath'] . "/".$classname.".inc.php")) { - include_once($conf['classpath'] . "/".$classname.".inc.php"); - } else { - die('Unable to load: '.$conf['classpath'] . "/".$classname.".inc.php"); - } + global $conf; + + $cl = explode(',',$classes); + if(is_array($cl)) { + foreach($cl as $classname) { + if(is_file($conf['classpath'].'/'.$classname.'.inc.php') && (DEVSYSTEM || !is_link($conf['classpath'].'/'.$classname.'.inc.php'))) { + include_once($conf['classpath'].'/'.$classname.'.inc.php'); + } else { + die('Unable to load: '.$conf['classpath'].'/'.$classname.'.inc.php'); } } + } } /* @@ -101,40 +101,50 @@ function log($msg, $priority = 0) { - global $conf; - - if($priority >= $conf["log_priority"]) { + global $conf; + + if($priority >= $conf['log_priority']) { //if (is_writable($conf["log_file"])) { - if (!$fp = fopen ($conf["log_file"], "a")) { - die("Unable to open logfile."); + if (!$fp = fopen ($conf['log_file'], 'a')) { + die('Unable to open logfile.'); } - switch ($priority) { - case 0: - $priority_txt = "DEBUG"; + switch ($priority) { + case 0: + $priority_txt = 'DEBUG'; break; - case 1: - $priority_txt = "WARNING"; + case 1: + $priority_txt = 'WARNING'; break; - case 2: - $priority_txt = "ERROR"; + case 2: + $priority_txt = 'ERROR'; break; - } + } - if (!fwrite($fp, date("d.m.Y-H:i")." - ".$priority_txt." - ". $msg."\r\n")) { - die("Unable to write to logfile."); + if (!fwrite($fp, @date('d.m.Y-H:i').' - '.$priority_txt.' - '. $msg."\r\n")) { + die('Unable to write to logfile.'); } - echo date("d.m.Y-H:i")." - ".$priority_txt." - ". $msg."\n"; - fclose($fp); - - // Log to database - if(isset($this->db)) { - $server_id = $conf['server_id']; - $loglevel = $priority; - $tstamp = time(); - $message = $this->db->quote($msg); - $sql = "INSERT INTO sys_log (server_id,loglevel,tstamp,message) VALUES ('$server_id','$loglevel','$tstamp','$message')"; - $this->db->query($sql); + echo @date('d.m.Y-H:i').' - '.$priority_txt.' - '. $msg."\n"; + fclose($fp); + + // Log to database + if(isset($this->dbmaster)) { + $server_id = $conf['server_id']; + $loglevel = $priority; + $tstamp = time(); + $message = $this->dbmaster->quote($msg); + $datalog_id = (isset($this->modules->current_datalog_id) && $this->modules->current_datalog_id > 0)?$this->modules->current_datalog_id:0; + if($datalog_id > 0) { + $tmp_rec = $this->dbmaster->queryOneRecord("SELECT count(syslog_id) as number FROM sys_log WHERE datalog_id = $datalog_id AND loglevel = ".LOGLEVEL_ERROR); + //* Do not insert duplicate errors into the web log. + if($tmp_rec['number'] == 0) { + $sql = "INSERT INTO sys_log (server_id,datalog_id,loglevel,tstamp,message) VALUES ('$server_id',$datalog_id,'$loglevel','$tstamp','$message')"; + $this->dbmaster->query($sql); } + } else { + $sql = "INSERT INTO sys_log (server_id,datalog_id,loglevel,tstamp,message) VALUES ('$server_id',0,'$loglevel','$tstamp','$message')"; + $this->dbmaster->query($sql); + } + } //} else { // die("Unable to write to logfile."); @@ -150,7 +160,7 @@ function error($msg) { $this->log($msg,3); - die($msg); + die($msg); } } @@ -161,4 +171,4 @@ $app = new app; -?> \ No newline at end of file +?> -- Gitblit v1.9.1