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