myErrorHandler收到错误

时间:2017-10-14 17:09:43

标签: php

我收到以下错误消息:

  

注意:使用未定义的常量myErrorHandler - 假设' myErrorHandler'在第78行的C:\ xampp \ htdocs \ Webpage \ Security \ functions.php

  

警告:set_error_handler()期望参数(myErrorHandler)在第78行的C:\ xampp \ htdocs \ Webpage \ Security \ functions.php中成为有效的回调

我无法弄清楚我需要做些什么来纠正错误。我希望函数myErrorHandler能够处理网页上的所有错误。

function DB_Connect() 
{
    static $conn;
   if (!$conn) {
        mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
        $conn = mysqli_connect(DEF_Server,DEF_User,DEF_Password,DEF_Database);
    }
    return $conn;
}

set_error_handler(myErrorHandler);
function myErrorHandler($errno, $errstr, $errfile, $errline) 
{
    error_log("$errstr in $errfile:$errline");
    header('HTTP/1.1 500 Internal Server Error', TRUE, 500);
    readfile($NAV_DB_Error500);
    exit;
}

我修复了" SebTM":

set_error_handler("myErrorHandler");
function myErrorHandler($errno, $errstr, $errfile, $errline) 
{
    error_log("$errstr in $errfile:$errline");
    header('HTTP/1.1 500 Internal Server Error', TRUE, 500);
    readfile($NAV_DB_Error500);
    exit;
}

我现在收到以下错误,它删除了通知,但警告仍然存在:

  

警告:set_error_handler()期望参数(myErrorHandler)在第78行的C:\ xampp \ htdocs \ Webpage \ Security \ functions.php中成为有效的回调

1 个答案:

答案 0 :(得分:0)

您需要将函数的名称(在声明之后)传递给“set_error_handler”作为字符串,例如。

set_error_handler("myErrorHandler");

错误处理程序也应该返回“true”作为布尔值,以避免内部php错误处理!