Как подавить E_NOTICE в этой функции php, я не хочу получать электронную почту, о переменных без декларации, с сайта-производителя?set_error_handler, Как подавить E_NOTICE в php
Я попытался исключить случай комментария E_NOTICE: но тогда программа просто переходит к умолчанию: exit («Неизвестная ошибка при $ errfile: $ errline»); в конце сценария.
Я хочу, чтобы возможность прокомментировать обратную связь с ошибкой Я не хочу?
<?php
function errorHandler($errno, $errstr, $errfile, $errline) {
function errorMail($errno, $errstr, $errfile, $errline) {
$recvmail = "yourmail";
$fejlkode = array(
1 => "E_ERROR",
2 => "E_WARNING",
4 => "E_PARSE",
8 => "E_NOTICE",
16 => "E_CORE_ERROR",
32 => "E_CORE_WARNING",
64 => "E_COMPILE_ERROR",
128 => "E_COMPILE_WARNING",
256 => "E_USER_ERROR",
512 => "E_USER_WARNING",
1024 => "E_USER_NOTICE",
2048 => "E_STRICT",
4096 => "E_RECOVERABLE_ERROR",
8192 => "E_DEPRECATED",
16384 => "E_USER_DEPRECATED",
);
$mail = new PHPMailer;
$mail->From = 'mailSender';
$mail->FromName = 'your firm name';
$mail->AddAddress($recvmail, "your name"); // Add a recipient
$mail->SetLanguage('dk', './');
$mail->Subject = utf8_decode("Fejl type:" . $errno .' -> '. $fejlkode[$errno]);
$mail->Body = utf8_decode($errstr.' <br>'.$errfile.': '.$errline);
$mail->AltBody = $errstr.$errfile.$errline.$errno;
if(!$mail->Send()) {
echo 'Message could not be sent.';
echo 'Mailer Error: ' . $mail->ErrorInfo;
exit;
}
}
switch ($errno) {
case E_NOTICE:
case E_USER_NOTICE:
case E_DEPRECATED:
case E_USER_DEPRECATED:
case E_STRICT:
errorMail($errno, $errstr, $errfile, $errline);
break;
case E_WARNING:
case E_USER_WARNING:
errorMail($errno, $errstr, $errfile, $errline);
break;
case E_ERROR:
case E_USER_ERROR:
errorMail($errno, $errstr, $errfile, $errline);
exit("FATAL error $errstr at $errfile:$errline");
default:
exit("Unknown error at $errfile:$errline");
}
}
set_error_handler("errorHandler");
?>
Не подавлять предупреждения. Устраните проблему, которая вызывает их в первую очередь. –
_I не хочу получать электронную почту, о не объявленных переменных_ - да. PHP делает предположения о необъявленных переменных, которые могут не соответствовать ожидаемому. Производственный сайт не должен генерировать никаких сообщений вообще при нормальной работе. –
показать все ошибки, за исключением E_NOTICE и E_USER_NOTICE. set_error_handler ("errorHandler", E_ALL & ~ E_NOTICE & ~ E_USER_NOTICE); – Anders