Статьи

Совет: Журналы ошибок электронной почты с PHP

В сегодняшнем коротком совете по видео мы рассмотрим процесс настройки пользовательских обработчиков ошибок с помощью PHP. Попутно мы также узнаем, как регистрировать и отправлять эти потенциальные ошибки нам самим. Таким образом, даже когда ваше веб-приложение будет развернуто, вы будете первым, кто узнает об ошибке.



01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?php
 
// Our custom error handler
function nettuts_error_handler($number, $message, $file, $line, $vars)
 
{
    $email = «
        <p>An error ($number) occurred on line
        <strong>$line</strong> and in the <strong>file: $file.</strong>
        <p> $message </p>»;
         
    $email .= «<pre>» .
     
    $headers = ‘Content-type: text/html;
     
    // Email the error to someone…
    error_log($email, 1, ‘[email protected]’, $headers);
 
    // Make sure that you decide how to respond to errors (on the user’s side)
    // Either echo an error message, or kill the entire project.
    // The code below ensures that we only «die» if the error was more than
    // just a NOTICE.
    if ( ($number !== E_NOTICE) && ($number < 2048) ) {
        die(«There was an error. Please try again later.»);
    }
}
 
// We should use our custom function to handle errors.
set_error_handler(‘nettuts_error_handler’);
 
// Trigger an error… (var doesn’t exist)
echo $somevarthatdoesnotexist;

Если вы решили установить свои собственные обработчики ошибок, убедитесь, что вы:

  • Определите, стоит ли die() и убить страницу.
  • Обеспечить некоторый уровень обратной связи для пользователя. Если произошла фатальная ошибка, дайте им знать в той или иной форме!
  • Вы не хотите по электронной почте сами ошибки при отладке. Вы можете создать переменную $debug которая, если задано значение true , пропустит процесс отправки сообщения об ошибке по электронной почте и вместо этого выведет ошибку на страницу. Если вам нужен фрагмент кода для этого, просто дайте нам знать!