【问题标题】:Get the Apache error code and display it in PHP获取 Apache 错误代码并在 PHP 中显示
【发布时间】:2015-10-19 03:31:22
【问题描述】:

我正在制作一个 PHP 错误页面,我想知道是否有任何方法可以获取导致错误的错误代码并显示它。然后,我可以使用相同的方法,但让 PHP 根据发生的错误显示不同的错误代码。我正在使用 Apache 2.4 和 PHP 5.6.10。任何帮助将不胜感激。

【问题讨论】:

    标签: php apache2.4


    【解决方案1】:

    将所有错误页面指向 .htaccess 中的一个位置

    ErrorDocument 400 /error.php
    ErrorDocument 401 /error.php
    ErrorDocument 403 /error.php
    ErrorDocument 404 /error.php
    ErrorDocument 500 /error.php
    

    然后在error.php中你可以这样做:

    <?php
    $status = $_SERVER['REDIRECT_STATUS'];
    $codes = array(
           403 => array('403 Forbidden', 'The server has refused to fulfill your request.'),
           404 => array('404 Not Found', 'The document/file requested was not found on this server.'),
           405 => array('405 Method Not Allowed', 'The method specified in the Request-Line is not allowed for the specified resource.'),
           408 => array('408 Request Timeout', 'Your browser failed to send a request in the time allowed by the server.'),
           500 => array('500 Internal Server Error', 'The request was unsuccessful due to an unexpected condition encountered by the server.'),
           502 => array('502 Bad Gateway', 'The server received an invalid response from the upstream server while trying to fulfill the request.'),
           504 => array('504 Gateway Timeout', 'The upstream server failed to send a request in the time allowed by the server.'),
    );
    
    $title = $codes[$status][0];
    $message = $codes[$status][1];
    if ($title == false || strlen($status) != 3) {
           $message = 'Please supply a valid status code.';
    }
    // Insert headers here
    echo '<h1>'.$title.'</h1>
    <p>'.$message.'</p>';
    // Insert footer here
    

    来自https://css-tricks.com/snippets/php/error-page-to-handle-all-errors/

    --

    如果您想为 ex 自定义错误消息。解析错误,您可以将其添加到您的 PHP 文件的顶部:

    <?php
    set_error_handler('errorHandler');
    function errorHandler($code, $msg, $file, $line) {
    
        header($_SERVER['SERVER_PROTOCOL'] . ' 500 Internal Server Error', true, 500);
        echo "<h1>Unexpected error occurred</h1><p>The request was unsuccessful due to an unexpected error.</p>";
        // PHP error message:
        echo "<p>$msg</p>";
        die();
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-09-29
      • 2019-08-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多