プロが教えるわが家の防犯対策術!

内部処理の結果に応じて、成功の場合は「200 OK」、失敗の場合は「503 Service Unavailable」をHTTPヘッダのStatusに指定して返したいと思っています。

ヘッダを

"Content-Type: text/html\n\n"

だけにして返す場合は問題ないのですが、その前に

"Status: HTTP/1.1 200 OK\n" や "Status: HTTP/1.0 503 Service Unavailable\n" を追加するとInternal Server Errorになってしまいます。


[現状]
--------------------------------------------
$ret=system("コマンド");

$header = "Status: HTTP/1.1 200 OK\n";
$cmt = "OK";
if ($ret == 256) {
$header = "Status: HTTP/1.0 503 Service Unavailable\n";
$cmt = "NG";
}
$header .= "Content-Type: text/html\n\n";

print "$header";
print "$cmt";

exit;
--------------------------------------------

なにか、Statusを変更する良い手段はないでしょうか?
よろしくお願いします。

A 回答 (2件)

実際に試してませんが


$header = "Status: 200 OK\n";
$cmt = "OK";
if ($ret == 256) {
$header = "Status: 503 Service Unavailable\n";
$cmt = "NG";
}
$header .= "Content-Type: text/html\n\n";
でどうでしょう

この回答への補足

ちなみに、質問文に間違いがありまして、Internal Server Errorではなく、正常に画面が表示されてステータスコードが「0」になっていました。
誤った条件を記述していました。すみません。

補足日時:2006/06/13 13:33
    • good
    • 0
この回答へのお礼

おおお、これでできました!
ありがとうございます!助かりました…。

お礼日時:2006/06/13 13:28

HTTPヘッダのステータス部分て Status: とかつきましたっけ?



HTTP/1.1 200 OK

のようになると思うんですが。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

Statusを付けないとInternal Server Errorになっていました。
ちなみに、受け取ったヘッダにはStatusがついていません。

お礼日時:2006/06/13 13:36

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!