Thomas Luethi: Headers already sent, Location: (wieder mal...)

Beitrag lesen

Hallo,

danke erstaml, aber wenn ich Header Location an den Anfang einfüge, kann man die Nachricht doch nicht mehr eingeben, oder?

Du hast offenbar nicht begriffen, was Header() tut und wozu man es benutzt.

Also, _entweder_ sendet das PHP-Skript einen HTTP-Header 302 mit Location:,
dann wird der Browser auf eine andere Seite umgeleitet.
(Dieser Seite kannst Du bei Bedarf Parameter weitergeben, indem Du sie
an die URL dranhaengst.)
Nach der Header-Ausgabe solltest Du das Skript beenden, z.B. mit die() oder exit().
Wenn Du danach HTML-Code ausgibst, wird er von den meisten Browsern ignoriert.
Steht uebrigens auch in der bereits genannten Seite:
http://www.php.net/manual/de/function.header.php#AEN30218

_Oder_ das PHP-Skript sendet eine HTML-Seite.
Darin kann dann ein Formular stehen.
Wenn Du _darin_ auf eine andere Seite weiterleiten willst,
mach einen normalen Link hin.

----------

Gruesse,

Thomas

P.S.
Wenn Du _ganz_ vorbildlich sein willst, kannst Du nach dem HTTP-Header
noch eine winzige HTML-Seite ausgeben, die einen normalen, klickbaren Link auf die
Zielseite enthaelt. So verstehe ich zumindest die HTTP 1.1 Spezifikation:

http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3.3
"10.3.3 302 Found
The temporary URI SHOULD be given by the Location field in the response. Unless the request method was HEAD, the entity of the response SHOULD contain a short hypertext note with a hyperlink to the new URI(s)."