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 | 125 +++++++++++++++++++++++++++-------------- 1 files changed, 82 insertions(+), 43 deletions(-) diff --git a/server/lib/app.inc.php b/server/lib/app.inc.php old mode 100644 new mode 100755 index dd52be1..87f964dc --- a/server/lib/app.inc.php +++ b/server/lib/app.inc.php @@ -1,6 +1,7 @@ <?php + /* -Copyright (c) 2006, Till Brehm, projektfarm Gmbh +Copyright (c) 2007, Till Brehm, projektfarm Gmbh All rights reserved. Redistribution and use in source and binary forms, with or without modification, @@ -27,51 +28,69 @@ 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; + + /* + Initialize the connection to the master DB, + if we are in a multiserver setup + */ + + 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; + } + + } } 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'); } } + } } /* @@ -82,30 +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."<br>"; - fclose($fp); + 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."); @@ -121,7 +160,7 @@ function error($msg) { $this->log($msg,3); - die($msg); + die($msg); } } @@ -132,4 +171,4 @@ $app = new app; -?> \ No newline at end of file +?> -- Gitblit v1.9.1