Der Martin: PHP: default Zweig in switch will nicht anspringen

Beitrag lesen

Hallo,

eine Nachfrage zum Setzen Statuscode, wann nehm ich welche Variante:

header("HTTP/1.1 404 Not Found");

hier meinst du vermutlich "403 Forbidden". 404 ist etwas anderes.

header('Status: 403', TRUE, 403);

Das scheint ja nur in bestimmten Konfigurationen zu funktionieren, wenn ich die Tests vom Raketenwilli richtig deute. Also nicht empfehlenswert.

http_response_code( 403 );

Das ist wohl die einfachste Variante.

Header soll man ja vor jeglicher Ausgabe setzen, wie ist das bei diesem speziellen (bei mir ist Ausgabe davor, trotzdem war der Statuscode gesetzt worden)?

In neueren PHP-Versionen ist Output Buffering anscheinend als Default aktiv, so dass HTTP-Header auch nach der ersten Ausgabe noch gesetzt werden können.

kann http_response_code auch nach Ausgabe gesetzt werden (klappt bei mir trotz Ausgabe davor)?

Ja, wenn die Ausgabe kürzer ist als der Output Buffer (Default 4k).

Einen schönen Tag noch
 Martin

--
Мир для України.