Code

- Corrected debian bugnumbers
[gosa.git] / include / php_setup.inc
index 3e80fad14a5bd009cec7bfedb9046c347355477a..8260e9593c8f680621dc26a0e333be6c6b6c03b2 100644 (file)
@@ -22,6 +22,10 @@ function gosaRaiseError($errno, $errstr, $errfile, $errline)
 {
   global $error_collector,$error_collector_mailto,$config;
 
+  if(function_exists("gosa_log")){
+    gosa_log($errno." ".$errstr." ".$errfile." ".$errline);
+  }
+
   /* Return if error reporting is set to zero */
   if (error_reporting() == 0){
     return;
@@ -65,13 +69,31 @@ function gosaRaiseError($errno, $errstr, $errfile, $errline)
 
   /* Create header as needed */
   if ($error_collector == ""){
-   
+
     /* Mailto body header */ 
+    if(function_exists("prepare4mailbody")){
     $error_collector_mailto .=prepare4mailbody(
-                                "GOsa bug report".
-                                "\nGOsa Version : ".get_gosa_version().
-                                "\nDate : ".date("H:i:s d.m.Y").
-                                "\n\n");
+                                "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: ".get_gosa_version().
+                                "\nDate: ".date("d.m.Y").
+                                "\nTime: ".date("H:i:s").
+                                "\nUser-Agent: ".$_SERVER['HTTP_USER_AGENT']." ".
+                                "(Javascript is ".( (isset($_SESSION['js']) && $_SESSION['js']==FALSE) ? "inactive" : "active" ).")".
+                                "\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 runtime information ***".
+                                "\nPHP Version: ".phpversion().
+                                "\nRunning on: ".php_uname().
+                                "\nLoaded Extensions: ".print_array(get_loaded_extensions()).
+                                "\nLDAP Module Version: ".get_module_setting('ldap','RCS Version').
+                                "\n\n".
+                                "*** PHP error information ***\n\n");
+      }
 
     if (isset($_SESSION['js']) && $_SESSION['js']==FALSE){
       $error_collector= "<div>";
@@ -79,8 +101,11 @@ function gosaRaiseError($errno, $errstr, $errfile, $errline)
       $error_collector= "
         <table summary=\"\" width=\"100%\" style='background-color:#E0E0E0;border-bottom:1px solid black;z-index:150;'>
           <tr>
-            <td>
-              <img alt=\"\" align=\"middle\" src='".get_template_path('images/warning.png')."'>&nbsp;
+            <td>";
+      if (function_exists("get_template_path")){
+              $error_collector.= "<img alt=\"\" align=\"middle\" src='".get_template_path('images/warning.png')."'>&nbsp;";
+      }
+      $error_collector.= "
               <font style='font-size:14px;font-weight:bold'>".
                 _("Generating this page caused the PHP interpreter to raise some errors!")."
               </font>
@@ -197,6 +222,50 @@ function gosaRaiseError($errno, $errstr, $errfile, $errline)
 }
 
 
+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",
+                "%38",
+                "%28",
+                "%29",
+                "%22");
+
+  $string = preg_replace($from,$to,$string);
+
+  return($string);
+}
+
+
 function dummy_error_handler()
 {
 }