Cristiano Magro
12 hours ago abdbdb16d9cc5446b8d8c155b8def0ba5ce66daf
src/Vola/FatalHandler/FatalHandler.php
@@ -1,27 +1,54 @@
<?php
if (!function_exists("fatal_handler")) {
   function fatal_handler() {
      $errfile = "unknown file";
      $errstr = "shutdown";
      $errno = E_CORE_ERROR;
      $errline = 0;
    function fatal_handler() {
      $error = error_get_last();
        $errfile = "unknown file";
        $errstr = "shutdown";
        $errno = E_CORE_ERROR;
        $errline = 0;
      if ($error['type'] === E_ERROR || $error['type'] === E_CORE_ERROR) {
         $result = print_r($error, true);
        $error = error_get_last();
         $headers = "From: assistenza.pro@vola.it\r\n";
         $headers .= "Subject: Fatal error rilevato\r\n";
         //$headers .= "MIME-Version: 1.0\r\n";
         //$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
        $listErroriTracciati = array(E_ERROR, E_COMPILE_ERROR, E_CORE_ERROR);
         error_log($result, 1, "cristiano.magro@vola.it", $headers);
      }
   }
        if (in_array($error['type'], $listErroriTracciati)) {
            $result = print_r($error, true);
            $resultEsca = mysql_real_escape_string($result);
            $nomeServer = $_SERVER['SERVER_NAME'];
            if (class_exists('PDOMgr')) {
                try {
                    $db = PDOMgr::create(DB_HOST, DB_NAME, DB_USER, DB_PSWD);
   register_shutdown_function("fatal_handler");
                    $sql =<<<ENDSQL
                            INSERT INTO log_errori_server
                                (server,livello, messaggio, dt)
                                    VALUES (
                                        '$nomeServer',
                                        'FATAL',
                                        '$resultEsca',
                                        now()
                            );
ENDSQL;
                    $db->insert($sql);
                } catch (Exception $exc) {
//                    error_log($exc->getTraceAsString());
                    error_log("PDOMgr problemi connessione database");
                }
            } else {
                //in mancanza di PDOMgr mando la mail
                $headers = "From: assistenza.pro@vola.it\r\n";
                $headers .= "Subject: Fatal error rilevato\r\n";
                error_log($result, 1, "cristiano.magro@vola.it", $headers);
            }
        }
    }
    register_shutdown_function("fatal_handler");
}