source: trunk/includes/error.php@ 61

Last change on this file since 61 was 61, checked in by george, 16 years ago
  • Přidáno: Export překladů do českého WoW Addonu.
  • Upraveno: Export souborů se nyní ukládá samostatně do složek dle jmen uživatelů.
  • Přidáno: Zobrazování chyb dle konfigurace.
File size: 2.0 KB
Line 
1<?php
2
3include_once('config.php');
4
5//error_reporting(0); // Vypni interní obsluhu chyb
6
7function CustomErrorHandler($errno, $errmsg, $filename, $linenum, $vars)
8{
9 global $Config;
10
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"
24 );
25 $UserErrors = E_ALL; //E_ERROR | E_WARNING | E_PARSE;
26
27 if(($UserErrors & $errno))
28 {
29 $Error = '# '.$dt.' : '.$errmsg." on line ".$linenum."\n";
30 $Backtrace = debug_backtrace();
31 array_shift($Backtrace);
32 //array_shift($Backtrace);
33 //print_r($Backtrace);
34 foreach($Backtrace as $Item)
35 {
36 $Error .= ' '.$Item['file'].'('.$Item['line'].")\t".$Item['function'];
37 $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).")";
46 $Error .= "\n";
47
48 }
49 $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 if((E_ERROR | E_PARSE) & $errno) die();
57 }// else echo($errmsg.'<br>');
58}
59
60set_error_handler('CustomErrorHandler'); // Aktivuj novou obsluhu chyb
61
62?>
Note: See TracBrowser for help on using the repository browser.