data) && $config->get_cfg_value("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= "
\"\"  ". _("Generating this page caused the PHP interpreter to raise some errors!")."  "._("Send bugreport")."
"; } } /* Create error header */ $error_collector.= ""; $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.= ""; $error_collector.= ""; $error_collector.= ""; /* 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.= "

"._("PHP error")." \"$errstr\"

"._("Trace")."[$index]: $loc"._("File").": $file ("._('Line')." $line)"._("Type").": $type
"._("Arguments").": $args
"; /* 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: ?>