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 | 135 +++++++++++++++++++++++++++++--------------- 1 files changed, 89 insertions(+), 46 deletions(-) diff --git a/server/lib/app.inc.php b/server/lib/app.inc.php old mode 100644 new mode 100755 index 1394b1e..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,47 +28,69 @@ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -class app { +//* Set timezone +if(isset($conf['timezone']) && $conf['timezone'] != '') date_default_timezone_set($conf['timezone']); - function app() { +class app { + + var $loaded_modules = array(); + var $loaded_plugins = array(); + + 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($files) { + function load($classes) { - global $conf; - $fl = explode(',',$files); - if(is_array($fl)) { - foreach($fl as $file) { - if(is_file($conf['classpath'] . "/".$classname.".inc.php") && !is_link($conf['classpath'] . "/".$classname.".inc.php")) { - include_once($conf['classpath'] . "/".$file.".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'); + } + } + } } /* @@ -78,34 +101,54 @@ function log($msg, $priority = 0) { - global $conf; - - if($priority >= $conf["log_priority"]) { - if (is_writable($conf["log_file"])) { + global $conf; - if (!$fp = fopen ($conf["log_file"], "a")) { - die("Unable to open Logfile."); + if($priority >= $conf['log_priority']) { + //if (is_writable($conf["log_file"])) { + 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.'); } - fclose($fp); + echo @date('d.m.Y-H:i').' - '.$priority_txt.' - '. $msg."\n"; + fclose($fp); - } else { - $this->error("Logfile ist nicht beschreibbar."); - } + // 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."); + //} } // if } // func @@ -117,7 +160,7 @@ function error($msg) { $this->log($msg,3); - die(); + die($msg); } } @@ -128,4 +171,4 @@ $app = new app; -?> \ No newline at end of file +?> -- Gitblit v1.9.1