Headers already sent – Fehler in PHP

Manche PHP-Probleme sind schwer einzugrenzen. Nehmen wir z.B. das folgende Script:

<?php
header('Location: http://www.ekiwi.de');
?>

Dieses sollte beim Aufruf einfach auf eKiwi.de weiterleiten. Abgespeichert, hochgeladen und passieren tut nix oder es wird ein Fehler ausgegeben:

PHP Warning:  Cannot modify header information - headers already sent by (output started at test.php:1)

Ein möglicher Grund ist die Art und Weise wie die Datei abgespeichert worden ist. Die Datei war als UTF-8 abgespeichert, allerdings mit BOM. BOM?

BOM steht für Byte Order Mark. Wird die Datei so abgespeichert, werden die ersten drei Bytes (der BOM) für die Kodierungsinformationen verwendet. Texteditoren können somit erkennen, dass die Datei mit UTF kodiert ist. Diese Zeichen werden normal auch nicht angezeigt.

Im Falle von PHP können hier allerdings Probleme auftauchen. Die Zeichen werden ausgeben und verursachen den oben dargestellten Fehler.

Die Lösung ist recht einfach, man speichert die Datei einfach ohne BOM ab. Statt:

wählt man in Texteditoren wie Notepad++ UTF-8 ohne BOM aus:

Anschließend sollte das Script laufen.

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert