Changeset 682 for trunk/Modules/Error/Error.php
- Timestamp:
- Aug 5, 2014, 10:49:06 PM (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Modules/Error/Error.php
r586 r682 6 6 var $ShowError; 7 7 var $UserErrors; 8 8 9 9 function __construct($System) 10 10 { … … 21 21 $this->UserErrors = E_ALL; //E_ERROR | E_WARNING | E_PARSE; 22 22 } 23 23 24 24 function DoInstall() 25 25 { … … 28 28 function DoUnInstall() 29 29 { 30 } 31 30 } 31 32 32 function DoStart() 33 33 { … … 36 36 set_exception_handler(array($this, 'ExceptionHandler')); 37 37 } 38 38 39 39 function Stop() 40 40 { … … 43 43 parent::Stop(); 44 44 } 45 45 46 46 function ErrorHandler($Number, $Message, $FileName, $LineNumber, $Variables) 47 47 { … … 60 60 1024 => 'User Notice' 61 61 ); 62 62 63 63 if(($this->UserErrors & $Number)) 64 64 { 65 // Error was suppressed with the @-operator 66 if(0 === error_reporting()) 67 { 68 return false; 69 } 65 70 $Backtrace = debug_backtrace(); 66 71 $Backtrace[0]['function'] = $Message; … … 69 74 $Backtrace[0]['line'] = $LineNumber; 70 75 $this->Report($Backtrace); 71 if((E_ERROR | E_PARSE) & $Number) die(); 76 if((E_ERROR | E_PARSE) & $Number) die(); 72 77 } 73 78 } 74 75 function ExceptionHandler(Exception $Exception) 79 80 function ExceptionHandler(Exception $Exception) 76 81 { 77 $Backtrace = $Exception->getTrace(); 82 $Backtrace = $Exception->getTrace(); 78 83 array_unshift($Backtrace, array( 79 84 'function' => $Exception->getMessage(), … … 84 89 die(); 85 90 } 86 91 87 92 function Report($Backtrace) 88 93 { 89 $Date = date('Y-m-d H:i:s'); 94 $Date = date('Y-m-d H:i:s'); 90 95 $Error = '# '.$Date."\n"; 91 96 foreach($Backtrace as $Item) … … 93 98 if(!array_key_exists('line', $Item)) $Item['line'] = ''; 94 99 if(!array_key_exists('file', $Item)) $Item['file'] = ''; 95 100 96 101 $Error .= ' '.$Item['file'].'('.$Item['line'].")\t".$Item['function']; 97 102 $Arguments = ''; … … 107 112 } 108 113 $Error .= "\n"; 109 114 110 115 $this->System->ModuleManager->Modules['Log']->NewRecord('Error', 'Log', $Error); 111 116 112 117 //if($Config['Web']['ErrorLogFile'] != '') 113 118 // error_log($Error, 3, $Config['Web']['ErrorLogFile']); … … 117 122 if($this->ShowError == true) 118 123 { 119 echo('<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head>'."\n". 124 if(array_key_exists('REMOTE_ADDR', $_SERVER)) 125 { 126 echo('<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head>'."\n". 120 127 '<meta http-equiv="Content-Language" content="cs">'."\n". 121 128 '<meta http-equiv="Content-Type" content="text/html; charset='.$this->Encoding.'"></head><body>'."\n". 122 129 'Došlo k vnitřní chybě!<br/> O chybě byl uvědoměn správce webu a chybu brzy odstraní.<br/><br/>'); 123 echo('<pre>'.$Error.'</pre><br/>'); // V případě ladění chybu i zobraz 124 echo('</body></html>'); 125 } 130 echo('<pre>'.$Error.'</pre><br/>'); // V případě ladění chybu i zobraz 131 echo('</body></html>'); 132 } else 133 { 134 echo($Error); 135 } 136 } 126 137 } 127 138 }
Note:
See TracChangeset
for help on using the changeset viewer.