data) && $config->get_cfg_value("core","displayErrors") != "true"){
/* Write to syslog */
if(class_exists("log") && !preg_match("/No such object/",$errstr)){
new log("view","error","",array(),"PHP error: $errstr ($errfile, line $errline)");
}
set_error_handler('gosaRaiseError', E_WARNING | E_NOTICE | E_USER_ERROR | E_USER_WARNING | E_USER_NOTICE | E_STRICT) ;
return;
}
/* Send all errors to logging class, except "Ldap : No such object" messages*/
if(class_exists("log") && !preg_match("/No such object/",$errstr)){
new log("debug","all",$errfile,array(),"Type:".$errno.", Message:".$errstr.", File:".$errfile.", Line: ".$errline);
}
/* Create header as needed */
if ($error_collector == ""){
/* Mailto body header */
if(function_exists("prepare4mailbody")){
$version= "unknown";
if(function_exists("get_gosa_version")){
$version= get_gosa_version();
}
$error_collector_mailto .=prepare4mailbody(
"Oups. Seems like you've catched some kind of bug inside GOsa/PHP. You may want to help ".
"us to improve the software stability. If so, please provide some more information below.".
"\n\n".
"*** GOsa bug report ***".
"\nGOsa Version: $version".
"\n\n".
"Please describe what you did to produce this error as detailed as possible. Can you ".
"reproduce this bug using the demo on http://www.gosa-project.org ?".
"\n\n".
"*** PHP error information ***\n\n");
}
if (session::is_set('js') && session::get('js')==FALSE){
$error_collector= "
";
} else {
$error_collector= "
";
}
}
/* Create error header */
$error_collector.= "
"._("PHP error")." \"$errstr\" |
";
$error_collector_mailto .= prepare4mailbody("=== Error === \n");
$error_collector_mailto .= prepare4mailbody("PHP error: $errstr ($errfile, line $errline)\n");
$error_collector_mailto .= prepare4mailbody("=== /Error === \n\n");
/* Extract traceback data - if available */
if (function_exists('debug_backtrace')){
$trace= debug_backtrace();
$error_collector_mailto .= prepare4mailbody("=== Trace ===");
/* Generate trace history */
for ($index= 0, $c= count($trace); $index<$c; $index++){
$ct= $trace[$index];
$loc= "";
if (isset($ct['class'])){
$loc.= _("class")." ".$ct['class'];
if (isset($ct['function'])){
$loc.= " / ";
}
}
if (isset($ct['function'])){
$loc.= _("function")." ".$ct['function'];
}
if (isset($ct['type'])){
switch ($ct['type']){
case "::":
$type= _("static");
break;
case "->":
$type= _("method");
break;
}
} else {
$type= "-";
}
$args= "";
if (isset($ct['args'])){
foreach ($ct['args'] as $arg){
/* Avoid convertig object to string errors */
if(is_object($arg)){
$arg = "CLASS: ".get_class($arg);
}
$args.= htmlentities("\"$arg\", ");
}
}
$args= preg_replace("/, $/", "", $args);
if ($args == ""){
$args= "-";
}
if(isset($ct['file'])) {
$file= $ct['file'];
}else{
$file="";
}
if(isset($ct['line'])) {
$line= $ct['line'];
}else{
$line="";
}
$color= ($index&1)?'#404040':'606060';
$error_collector.= ""._("Traceback")."[$index]: $loc | ";
$error_collector.= ""._("File").": $file ("._('Line')." $line) | "._("Type").": $type |
";
$error_collector.= ""._("Arguments").": $args |
";
/* Add trace part to mailto body */
$error_collector_mailto .= prepare4mailbody(
"\nTrace[".$index."]:".$loc.
"\nFile : ".$file.
"\nLine : ".$line.
"\nType : ".$type.
"\n ".$args.
"\n");
}
}
$error_collector_mailto .= prepare4mailbody("=== /Trace === \n");
/* Close error table */
$error_collector.= "
";
/* Flush in case of fatal errors */
set_error_handler('gosaRaiseError', E_WARNING | E_NOTICE | E_USER_ERROR | E_USER_WARNING | E_USER_NOTICE | E_STRICT) ;
if (preg_match('/^fatal/i', $errstr)){
echo $error_collector."
";
flush();
exit;
}
}
function prepare4mailbody($string)
{
$string = html_entity_decode($string);
$from = array(
"/%/",
"/ /",
"/\n/",
"/\r/",
"/!/",
"/#/",
"/\*/",
"/\//",
"/",
"/>/",
"/\?/",
"/\"/");
$to = array(
"%25",
"%20",
"%0A",
"%0D",
"%21",
"%23",
"%2A",
"%2F",
"%3C",
"%3E",
"%3F",
"%22");
$string = preg_replace($from,$to,$string);
return($string);
}
function dummy_error_handler()
{
}
/* Bail out for incompatible/old PHP versions */
if (!version_compare(phpversion(),"5.2.0",">=")){
echo "PHP version needs to be 5.2.0 or above to run GOsa. Aborted.";
exit();
}
/* Set timezone */
date_default_timezone_set("GMT");
/* Get base dir for reference */
$BASE_DIR= dirname(dirname(__FILE__));
$ROOT_DIR= $BASE_DIR."/html";
error_reporting (E_ALL | E_STRICT);
/* Register error handler */
$error_collector= "";
$error_collector_mailto= "";
set_error_handler('gosaRaiseError', E_WARNING | E_NOTICE | E_USER_ERROR | E_USER_WARNING | E_USER_NOTICE | E_STRICT) ;
$variables_order= "ES";
ini_set("register_globals",0);
ini_set("track_vars",1);
ini_set("display_errors",1);
ini_set("report_memleaks",1);
ini_set("include_path",".:$BASE_DIR/include:$BASE_DIR/include/utils/excel:/usr/share/php");
/* Do smarty setup */
require("smarty/Smarty.class.php");
$smarty = new Smarty;
$smarty->template_dir = $BASE_DIR.'/ihtml/';
$smarty->caching= false;
$smarty->php_handling= SMARTY_PHP_REMOVE;
/* Global FPDF define */
define('FPDF_FONTPATH', '/usr/share/php/fpdf/font/');
// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
?>