Mailinglisten-Archive |
Kay Häusler schrieb: >Guten Abend, > >ich möchte den Browser eine 404 Meldung ausliefern lassen > >laut http://de3.php.net/header sollte folgendes funktionieren > > > >>header("HTTP/1.0 404 Not Found"); >>header("Status: 404 Not Found"); >> >> > >das macht aber nur der Internet Explorer >Opera und Firefox zeigen einfach eine weiße Seite an > >das selbe kommt auch wenn ich folgendes mache > > > >>require_once('HTTP/Header.php'); >>$http_header = new HTTP_Header(); >>$http_header->sendStatusCode('404'); >> >> > >wo ist mein Denkfehler? >oder ist das ein Problem von Opera und Firefox? > It's not a BUG it's a Feature :-) Das Problem dahinter ist das Du einen Header sendest mit der Aussage das der Server keine Datei zum anzeigen finden konnte jedoch der WebServer selbige bereits am parsen und ausgeben ist (und für sich selbst bereit entschieden hat das alles 200 OK ist) .. die Fehlermedlung 404 bedeutet das normalerweise der Webserver selbst eine 404 Fehlerseite anzeigt mit eventuellen weiteren Informationen zu diesem Fehler. Das heißt ein anständiger Webserver liefert trotz des Fehlers 404 dennoch Daten, nämlich die des ErrorDocuments! Demzufolge verhalten sich Opera und Firefox ganz korrekt, sie zeigen nämlich diesen Inhalt an .. der im Moment halt Leer ist .. wenn Du NACH dem header Befehl also noch Text sendest, wird genau dieser angezeigt: <?php header("HTTP/1.0 404 Not Found"); ?> Dies ist ein 404 Fehler! Der Internet Explorer hingegen ist so selbstverliebt, das er, wenn keine 404 Webseite zurück bekommt lieber eine eigene Seite anzeigt. Das versenden eines solchen Headers dient AFAIK mehr dazu falls die Dokument-Fehler-Anweisung 404 des Apache auf ein PHP-Skript zeigen soll, auf gut Deutsch falls das ErrorDocument das von Apache angezeigt wird selbst ein PHP Script ist und beim anzeigen nicht versehentlich 200 sondern wissentlich 404 zurückliefert. Weiterhin muß beachtet werden das der Status 200 und 404 zur selben Gruppe gehören, also keine neue Anforderung wie ein Redirect etc. auslösen! regards, G. Lohmann
php::bar PHP Wiki - Listenarchive