Der Martin: weiterleitung header("datei.php"); alternativer befehl

Beitrag lesen

Hallo,

»» Für PHP ist es egal, was da drin steht, wichtig wird das erst bei der Verarbeitung im dafür vorgesehenen Kontext (hier HTTP(-Header)).
Nein, PHP ist das nicht egal:
"Cannot add header information - headers already sent" ist wohl die klassische Meldung in diesem Kontext.

das ist der eine Punkt - der andere ist der, dass der Text "Location: ..." ja nicht nur als Header weitergereicht wird, sondern auch noch der HTTP-Status auf 302 geändert wird, sobald man einen Location-Header setzt (obwohl 301 oft angebrachter wäre).

Wenn es PHP egal wäre, würde es einfach "LOCATION: http://example.com/foo/bar.baz" an die Standardausgabe senden und gut wäre.

Ja. Dann könnte man aber auch ganz auf die Funktion header() verzichten und sämtliche Header per print oder echo raushauen, müsste dann aber auch darauf achten, vor dem eigentlichen Content eine Leerzeile auszugeben. Zu viele neue Fehlerquellen ...

Stattdessen wird man aber freundlicherweise auf einen Fehler hingewiesen - das könnte man bei anderen bekannten Fehlern auch machen.

Macht man ja auch - denke nur an Array-Indexe, die irrtümlich als benannte Konstanten notiert sind, wo PHP gnädigerweise eine Notice ausgibt und sie dann als String interpretiert. Oder Zugriffe auf nicht existierende Variablen.
Ich finde, wenn man die vorhandenen Reporting-Möglichkeiten nutzt, bekommt man schon einiges an "freundlichen Hinweisen" bei typischen Fehlern.

So long,
 Martin

--
Das einzige Problem beim Nichtstun: Man weiß nie, wann man damit fertig ist.