Changeset 205


Ignore:
Timestamp:
Jun 19, 2009, 7:13:32 AM (15 years ago)
Author:
george
Message:
  • Opraveno: Chybějící informace o umístění chyby v záznamu chyb v souboru error.php.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/includes/error.php

    r136 r205  
    11<?php
    22
    3 include_once('config.php');
    4 
    5 //error_reporting(0);                                   // Vypni interní obsluhu chyb
    6 
    7 function CustomErrorHandler($errno, $errmsg, $filename, $linenum, $vars)
     3function CustomErrorHandler($Number, $Message, $Filename, $LineNumber, $Variables)
    84{
    95  global $Config;
    106 
    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'
    2421  );
    2522  $UserErrors = E_ALL;  //E_ERROR | E_WARNING | E_PARSE;
    2623 
    27   if(($UserErrors & $errno))
     24  if(($UserErrors & $Number))
    2825  {
    29     $Error = '# '.$dt.' : '.$errmsg." on line ".$linenum."\n";
     26    $Error = '# '.$Date.' : '.$Message.' on line '.$LineNumber."\n";
    3027    $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);
    3234    //array_shift($Backtrace);
    3335    //print_r($Backtrace);
     
    3638      $Error .= ' '.$Item['file'].'('.$Item['line'].")\t".$Item['function'];
    3739      $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).')';
    4647      $Error .= "\n";
    4748     
    4849    }
    4950    $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  }
    6171}
    6272
    63 set_error_handler('CustomErrorHandler');                                // Aktivuj novou obsluhu chyb
     73set_error_handler('CustomErrorHandler');
    6474
    6575?>
Note: See TracChangeset for help on using the changeset viewer.