显示所有PHP错误的自定义错误页面并通过电子邮件发送给管理员

Sta*_*0rz 4 php error-handling

下午,

我一直在寻找了一段时间没有成功,看是否有显示自定义错误页的方法,只要任何PHP错误发生,从用户隐藏的错误 - 目前使用error_reporting(0),然后通过电子邮件发送特定的错误来实现我的电子邮箱.

初始逻辑(我知道它不对,它只是为了帮助你更好地理解):

if(error_reporting){
    ob_clean();
    include('classes/email.php');
    $email = new email($pdo);
    $email->mailError(ERROR_REPORT);
    include('error-page.php');
    die();
}
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激,谢谢!

irc*_*ell 5

好吧,您可以使用自定义错误处理功能.看到set_error_handler()

function sendMailOnError($errno, $errstr, $errfile, $errline, $errcontext) {
    $subject = 'An Error Occured';
    $body = "An Error Occured\n\n".
            "$errstr [$errno]\n".
            "File: $errfile\n".
            "Line: $errline\n".
            "Current local variables: ".print_r($errcontext, true);
    //send the email here
} 

set_error_handler('sendMailOnError');
Run Code Online (Sandbox Code Playgroud)

  • 好吧,你可以在处理程序中做任何你想做的事情.你可以转储输出缓冲区`while(ob_get_level())ob_end_clean();`,然后渲染你的错误页面...... (2认同)