Cristiano Magro
2017-10-02 e3ccc5beae9a474dde7235e545d75f7aa57f1b99
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
<?php
 
if (!function_exists("fatal_handler")) {
 
    function fatal_handler() {
 
        $errfile = "unknown file";
        $errstr = "shutdown";
        $errno = E_CORE_ERROR;
        $errline = 0;
 
        $error = error_get_last();
 
        $listErroriTracciati = array(E_ERROR, E_COMPILE_ERROR, E_CORE_ERROR);
 
        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('127.0.0.1', 'censimento_siti', 'root', ''  );
 
                    $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());
                }
 
            } 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");
}