Raketenwilli: PHP: default Zweig in switch will nicht anspringen

Beitrag lesen

Tjs.

http_status_code(403);

oder

header('HTTP/1.1 403');

oder

header('HTTP/1.1 403 Forbidden');

führt zu:

HTTP/1.1 403 Forbidden

im Response-Header.

(mit Einschränkungen klappt auch:)

header('HTTP/1.1 403 Irgendwelcher Mist');

Zumindest mit wget kümmert sich nicht um den Text. Chrome auch nicht. Der Status wird auf 403 gesetzt, der Fehler erkannt.

Der meint, dass man die Variante von Claus nutzen solle, wenn PHP als FastCGI und nicht als Apache Modul ausgeführt würde.

header("Status:403")

wäre Müll, denn das führt bei PHP als Modul zu einem Statuscode 200 (OK).

Der meint, dass man die Variante von Claus nutzen solle, wenn PHP als FastCGI und nicht als Apache Modul ausgeführt würde.

Ok. FastCGI. Bisher war alles mit PHP als Modul. Ich teste das auf einem Server mit FastCGI …

<?php
header("Status: 403  irgendwelcher Unsinn");
?>
Nicht vorhanden.

Hm. Das geht tatsächlich auf dem anderen Server.

Das funktioniert also nur mit FastCGI . Warum zum Teufel sollte ich etwas tun, was ein erheblicher Mehraufwand ist und nur unter bestimmten Bedingungen zum erwarteten Ergebnis führt?

Das gezeigte:

header('HTTP/1.1 403');

erschlägt, wie Du mit dem „patsch!“ wohl gemeint hast, das Problem auf allen Servern und ich sehe außer, um Spaß (oder bei Irrtümern oder einem Seitenumzug eben Ärger) zu haben, keinen Grund was anderes zu fummeln.

Mit seiner Empfehlung ist der andere Autor eben anderer Meinung...