1. ホーム
  2. php

[解決済み] PHP スクリプトから 500 Internal Server Error エラーを送信する方法

2023-04-30 05:46:42

質問

ある条件下で、PHP スクリプトから "500 Internal Server Error" を送信する必要があります。このスクリプトは、サードパーティのアプリケーションによって呼び出されることになっています。スクリプトには、いくつかの die("this happend") ステートメントがあり、そのステートメントに対して 500 Internal Server Error の代わりにレスポンスコードを送る必要があります。 200 OK . サードパーティのスクリプトは、特定の条件下でリクエストを再送信します。 200 OK レスポンスコードを受け取らなかった場合などです。

質問の2つ目。私はこのように私のスクリプトを設定する必要があります。

<?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

このようなエラーはウェブサーバによって記録されるのでしょうか?

どのように解決するのですか?

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