一尘不染

如何从PHP脚本发送500 Internal Server Error错误

php

在某些情况下,我需要从PHP脚本发送“ 500 Internal Server
Error”。该脚本应该由第三方应用程序调用。该脚本包含一些die("this happend")语句,我需要为它们发送500 Internal Server Error响应代码,而不是通常的语句200 OK。第三方脚本将在某些条件下重新发送请求,包括不接收200 OK响应代码。

问题的第二部分:我需要这样设置脚本:

<?php
    custom_header( "500 Internal Server Error" );

    if ( that_happened ) {
        die( "that happened" )
    }

    if ( something_else_happened ) {
        die( "something else happened" )
    }

    update_database( );

    // the script can also fail on the above line
    // e.g. a mysql error occurred

    remove_header( "500" );
?>

我只需要200在执行完最后一行之后发送标头。

编辑

附带问题:我可以发送500个奇怪的标头,例如:

HTTP/1.1 500 No Record Found
HTTP/1.1 500 Script Generated Error (E_RECORD_NOT_FOUND)
HTTP/1.1 500 Conditions Failed on Line 23

网络服务器会记录此类错误吗?


阅读 368

收藏
2020-05-29

共1个答案

一尘不染

header($_SERVER['SERVER_PROTOCOL'] . ' 500 Internal Server Error', true, 500);
2020-05-29