Changeset 212 for trunk/error.php
- Timestamp:
- May 10, 2009, 12:27:57 PM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/error.php
r209 r212 1 1 <?php 2 2 3 // Obsluha chyb v1.1.1 // 4 include_once('config.php'); 5 6 //error_reporting(0); // Vypni interní obsluhu chyb 7 8 function CustomErrorHandler($errno, $errmsg, $filename, $linenum, $vars) 3 function CustomErrorHandler($Number, $Message, $Filename, $LineNumber, $Variables) 9 4 { 10 5 global $Config; 11 6 12 $dt = date('Y-m-d H:i:s'); // časové razítko položky 13 $errortype = array( 14 1 => "Error", 15 2 => "Warning", 16 4 => "Parsing Error", 17 8 => "Notice", 18 16 => "Core Error", 19 32 => "Core Warning", 20 64 => "Compile Error", 21 128 => "Compile Warning", 22 256 => "User Error", 23 512 => "User Warning", 24 1024 => "User Notice" 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' 25 21 ); 26 $ user_errors = E_ALL; //E_ERROR | E_WARNING | E_PARSE;22 $UserErrors = E_ALL; //E_ERROR | E_WARNING | E_PARSE; 27 23 28 if(($ user_errors & $errno))24 if(($UserErrors & $Number)) 29 25 { 30 $ err = '# '.$dt.' : '.$errmsg.' on line '.$linenum."\n";26 $Error = '# '.$Date.' : '.$Message.' on line '.$LineNumber."\n"; 31 27 $Backtrace = debug_backtrace(); 32 array_shift($Backtrace); 28 $Backtrace[0]['function'] = ''; 29 $Backtrace[0]['args'] = ''; 30 //$First = array_shift($Backtrace); 31 print_r($First); 32 33 //array_unshift($Backtrace, $First); 33 34 //array_shift($Backtrace); 34 35 //print_r($Backtrace); 35 36 foreach($Backtrace as $Item) 36 37 { 37 $err .= ' '.$Item['file'].'('.$Item['line'].")\t".$Item['function']; 38 $arguments = ''; 39 if(array_key_exists('args',$Item)) 40 if(is_array($Item['args'])) 41 foreach($Item['args'] as $Arg) 42 { 43 if(is_array($Arg)) $arguments .= "'".serialize($Arg)."',"; 44 else $arguments .= "'".$Arg."',"; 45 } 46 if(strlen($arguments) > 0) $err .= '('.substr($arguments,0,-1).")"; 47 $err .= "\n"; 38 $Error .= ' '.$Item['file'].'('.$Item['line'].")\t".$Item['function']; 39 $Arguments = ''; 40 if(array_key_exists('args', $Item) and is_array($Item['args'])) 41 foreach($Item['args'] as $Item) 42 { 43 if(is_array($Item)) $Arguments .= "'".serialize($Item)."',"; 44 else $Arguments .= "'".$Item."',"; 45 } 46 if(strlen($Arguments) > 0) $Error .= '('.substr($Arguments, 0, -1).')'; 47 $Error .= "\n"; 48 48 49 49 } 50 $err .= "\n"; 51 //echo('Uvnitř'.$errno); 52 if($Config['Web']['ErrorLogFile'] != '') 53 error_log($err, 3, $Config['Web']['ErrorLogFile']); // Ulož do chybového protokolu 54 //$err = "Datum: ".$dt."\nHlášení: ".$errmsg."\nSkript: ".$filename."\nŘádek: ".$linenum; 55 // mail($Config['Web']['AdminEmail'], $Config['Web']['Title'].' - Chybové hlášení', $err); // Pošli mi zprávu (pokud je to kritická chyba) 56 echo('<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="cs" lang="cs"><head>'. 57 '<meta http-equiv="content-language" content="cs" />'. 58 '<meta http-equiv="content-type" content="text/html; charset=utf-8" /></head><body>'. 59 'Došlo k vnitřní chybě!<br /> O chybě byl uvědoměn správce webu a chybu brzy odstraní.<br /><br />'); 60 if($Config['Web']['ShowError'] == true) echo('<pre>'.$err.'</pre><br />'); // V případě ladění chybu i zobraz 61 echo('</body></html>'); 62 if((E_ERROR | E_PARSE) & $errno) die(); 63 }// else echo($errmsg.'<br>'); 50 $Error .= "\n"; 51 //if($Config['Web']['ErrorLogFile'] != '') 52 //error_log($Error, 3, $Config['Web']['ErrorLogFile']); 53 // Pošli mi zprávu (pokud je to kritická chyba) 54 //mail($Config['Web']['AdminEmail'], $Config['Web']['Title'].' - Chybové hlášení', $Error); 55 // Show error message 56 if($Config['Web']['ShowPHPError'] == true) 57 { 58 echo('<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head>'."\n". 59 '<meta http-equiv="Content-Language" content="cs">'."\n". 60 '<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2"></head><body>'."\n". 61 'Došlo k vnitřní chybě!<br> O chybě byl uvědoměn správce webu a chybu brzy odstraní.<br><br>'); 62 echo('<pre>'.$Error.'</pre><br>'); // V případě ladění chybu i zobraz 63 echo('</body></html>'); 64 } 65 if((E_ERROR | E_PARSE) & $Number) die(); 66 } 64 67 } 65 68 66 set_error_handler('CustomErrorHandler'); // Aktivuj novou obsluhu chyb69 set_error_handler('CustomErrorHandler'); 67 70 68 71 ?>
Note:
See TracChangeset
for help on using the changeset viewer.