Ich schreibe ein Authentifizierungsskript in PHP, um als eine API aufgerufen zu werden, die andernfalls 200 ' 500' zurückgeben muss.Wie man einen HTTP 500-Code bei irgendeinem Fehler zurückgibt, egal was
Das Problem, das ich renne ist, dass PHP 200
im Falle von Fehlerbedingungen zurückgibt, die Ausgabe des Fehlers als HTML stattdessen. Wie kann ich absolut sicher gehen, dass PHP einen HTTP 500
Code zurückgibt, wenn ich das HTTP 200
oder HTTP 403
nicht selbst zurückgebe? Mit anderen Worten, ich möchte alle und alle Warn- oder Fehlerbedingungen in 500
s, keine Ausnahmen, umwandeln, so dass der Standardfall die Authentifizierungsanforderung zurückweist und die Ausnahme diese mit einem Code 200
genehmigt.
Ich habe mit set_error_handler()
und error_reporting()
fiedled, aber bisher kein Glück. Wenn der Code beispielsweise etwas ausgibt, bevor ich den HTTP-Antwortcode sende, meldet PHP natürlich, dass Sie die Header-Informationen nach der Ausgabe nicht ändern können. Dies wird jedoch von PHP als 200
Response-Code mit HTML zur Erläuterung des Problems gemeldet. Ich muss sogar diese Art von Ding in einen 500
Code umgewandelt werden.
Ist das in PHP möglich? Oder muss ich das auf einer höheren Ebene tun, wie mod_rewrite
irgendwie zu verwenden? Wenn das der Fall ist, irgendeine Idee, wie ich das einrichten würde?
es gibt einen Fehlerbericht für das hier: http://bugs.php.net/bug.php?id=50921 - Nähte es, wie es kann behoben werden. –