set_error_handler изменено поведение ведет к ошибке

Я использовал один и тот же фрагмент кода в течение многих лет. Он хорошо работал на 3 разных сайтах. Недавно я начал с нового хостера, и, к моему удивлению, следующая ошибка регистрируется от 2 до 10 раз, прежде чем строка ссылается на саму ошибку программирования. Например, если переменная не определена, я получаю:

PHP Warning:  set_error_handler() expects the argument (log_all_errors) to be a valid callback in /home/mysite/public_html/error_handler.php on line 52

и после этого следует ошибка, связанная с переменной.

Вот упрощенная выдержка из кода:

# error_handler.php :

//defining a custom error_log etc ...
ini_set('display_errors', NULL);
define('SEND_ERROR_EMAIL_TO', 'mymail@mail.com');
set_error_handler('log_all_errors');

# catching the error :

include ('error_handler.php');
function log_all_errors($errno, $errstr, $errfile, $errline ) {
global $error_type;
$error_name = (isset($error_type[$errno]) ? $error_type[$errno] : 'Unknown error code - '."'".$_SESSION['ip']."'");
// defining lock file
// defining e-mail etc...
$error_message = $error_name.': '.$errstr.' in '.$errfile.' on line '.$errline;
error_log($error_message, 0);
}
set_error_handler('log_all_errors');

Бывший сервер был Apache, теперь это ngnix. Я часами читаю Руководство по PHP, но не могу понять, почему аргумент log_all_errors внезапно перестал быть действительным обратным вызовом.

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector