source: branches/old/error.php

Last change on this file was 448, checked in by george, 16 years ago
  • Přesunuto: Obsah kořenové složky byl přesunut do složky trunk a beta web přesunut do branches/beta.
File size: 2.6 KB
Line 
1<?
2
3// Obsluha chyb v1.1.1 //
4
5$Error_Email = $Config['Web']['AdminEmail']; // Adresa, kam budou chyby odesílány
6$Error_Subject = $Config['Web']['Title'].' - Chybové hlášení'; // Název zpráv o chybách
7$Error_ShowDetails = $Config['Web']['ShowError']; // Zobrazit detajly o chyby
8$ErrorLogFile = $Config['Web']['ErrorLogFile'];
9
10//error_reporting(0); // Vypni interní obsluhu chyb
11
12function obsluha_chyb($errno,$errmsg,$filename,$linenum,$vars)
13{
14 global $ErrorsDisabled, $Error_ShowDetails, $ErrorLogFile;
15 $dt = date("Y-m-d H:i:s"); // časové razítko položky
16 $errortype = array (
17 1 => "Error",
18 2 => "Warning",
19 4 => "Parsing Error",
20 8 => "Notice",
21 16 => "Core Error",
22 32 => "Core Warning",
23 64 => "Compile Error",
24 128 => "Compile Warning",
25 256 => "User Error",
26 512 => "User Warning",
27 1024 => "User Notice"
28 );
29 $user_errors = E_ALL; //E_ERROR | E_WARNING | E_PARSE;
30
31 if(($user_errors & $errno) and (!$ErrorsDisabled))
32 {
33 $err = '# '.$dt.' : '.$errmsg."\n";
34 $Backtrace = debug_backtrace();
35 array_shift($Backtrace);
36 //array_shift($Backtrace);
37 foreach($Backtrace as $Item)
38 {
39 $err .= ' '.$Item['file'].'('.$Item['line'].")\t".$Item['function'];
40 $arguments = '';
41 if(array_key_exists('args',$Item))
42 if(is_array($Item['args']))
43 foreach($Item['args'] as $Arg)
44 {
45 if(is_array($Arg)) $arguments .= "'".serialize($Arg)."',";
46 else $arguments .= "'".$Arg."',";
47 }
48 if(strlen($arguments)>0) $err .= '('.substr($arguments,0,-1).")";
49 $err .= "\n";
50
51 }
52 $err .= "\n";
53 //echo('Uvnitř'.$errno);
54 error_log($err, 3, $ErrorLogFile); // Ulož do chybového protokolu
55 //$err = "Datum: ".$dt."\nHlášení: ".$errmsg."\nSkript: ".$filename."\nŘádek: ".$linenum;
56 //mail($Error_Email,$Error_Subject,$err); // Pošli mi zprávu (pokud je to kritická chyba)
57 echo('<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head>'."\n".
58 '<meta http-equiv="Content-Language" content="cs">'."\n".
59 '<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2"></head><body>'."\n".
60 'Došlo k vnitřní chybě!<br> O chybě byl uvědomněn správce webu a chybu brzy odstraní.<br><br>');
61 if($Error_ShowDetails==1) echo('<pre>'.$err.'</pre><br>'); // V případě ladění chybu i zobraz
62 echo('</body></html>');
63 if((E_ERROR | E_PARSE) & $errno) die();
64 }// else echo($errmsg.'<br>');
65}
66
67set_error_handler('obsluha_chyb'); // Aktivuj novou obsluhu chyb
68
69?>
Note: See TracBrowser for help on using the repository browser.