source: trunk/error.php@ 391

Last change on this file since 391 was 323, checked in by chronos, 13 years ago
  • Upraveno: Zobrazovat ladící volby pouze podle filtru IP adres. Jako výchozí ip pro ladící informace lze použít 127.0.0.1(localhost). Do seznamu lze pak vložit další vzdálené adresy dle potřeby. Adresa by měla být jedinečná pro daný počítač.
File size: 2.4 KB
Line 
1<?php
2
3function CustomErrorHandler($Number, $Message, $Filename, $LineNumber, $Variables)
4{
5 global $Config;
6
7 $Date = date('Y-m-d H:i:s'); // časové razítko položky
8 $ErrorType = array
9 (
10 1 => 'Error',
11 2 => 'Warning',
12 4 => 'Parsing Error',
13 8 => 'Notice',
14 16 => 'Core Error',
15 32 => 'Core Warning',
16 64 => 'Compile Error',
17 128 => 'Compile Warning',
18 256 => 'User Error',
19 512 => 'User Warning',
20 1024 => 'User Notice'
21 );
22 $UserErrors = E_ALL; //E_ERROR | E_WARNING | E_PARSE;
23
24 if(($UserErrors & $Number))
25 {
26 $Error = '# '.$Date.' : '.$Message.' on line '.$LineNumber."\n";
27 $Backtrace = debug_backtrace();
28 $Backtrace[0]['function'] = '';
29 $Backtrace[0]['args'] = '';
30 $Backtrace[0]['file'] = '';
31 $Backtrace[0]['line'] = '';
32 //$First = array_shift($Backtrace);
33 //print_r($First);
34
35 //array_unshift($Backtrace, $First);
36 //array_shift($Backtrace);
37 //print_r($Backtrace);
38 foreach($Backtrace as $Item)
39 {
40 $Error .= ' '.$Item['file'].'('.$Item['line'].")\t".$Item['function'];
41 $Arguments = '';
42 if(array_key_exists('args', $Item) and is_array($Item['args']))
43 foreach($Item['args'] as $Item)
44 {
45 if(is_array($Item)) $Arguments .= "'".serialize($Item)."',";
46 else $Arguments .= "'".$Item."',";
47 }
48 if(strlen($Arguments) > 0) $Error .= '('.substr($Arguments, 0, -1).')';
49 $Error .= "\n";
50
51 }
52 $Error .= "\n";
53 //if($Config['Web']['ErrorLogFile'] != '')
54 //error_log($Error, 3, $Config['Web']['ErrorLogFile']);
55 // Pošli mi zprávu (pokud je to kritická chyba)
56 //mail($Config['Web']['AdminEmail'], $Config['Web']['Title'].' - Chybové hlášení', $Error);
57 // Show error message
58 if($Config['Web']['ShowPHPError'] == true)
59 {
60 echo('<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head>'."\n".
61 '<meta http-equiv="Content-Language" content="cs">'."\n".
62 '<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2"></head><body>'."\n".
63 'Došlo k vnitřní chybě!<br/> O chybě byl uvědoměn správce webu a chybu brzy odstraní.<br/><br/>');
64 echo('<pre>'.$Error.'</pre><br/>'); // V případě ladění chybu i zobraz
65 echo('</body></html>');
66 }
67 if((E_ERROR | E_PARSE) & $Number) die();
68 }
69}
70
71set_error_handler('CustomErrorHandler');
72
73?>
Note: See TracBrowser for help on using the repository browser.