Was bedeutet 'headers already sent'?

Beschreibung: Dateien, die mit "BOM" gespeichert werden, geben solch eine Fehlermeldung aus.

Kategorie: Extensions, Styles und Templates, Fehlermeldungen

Link zu diesem Artikel: Alles auswählen

[url=https://www.phpbb.de/kb/viewarticle?a=70&sid=bf394848a78a765fb78c323dc14ec6e9]Knowledge Base - Was bedeutet 'headers already sent'?[/url]

Gelegentlich kommt es vor, dass einem phpBB (oder ein anderes PHP-Script) folgende Fehlermeldung präsentiert:
Warning: Cannot modify header information - headers already sent by (output started at /irgendwo/meine/homepage/phpBB/index.php:10) in /irgendwo/meine/homepage/phpBB/includes/functions.php on line 4502
Die Ursache dieses Fehlers liegt darin, daß versucht wird, die Header-Informationen zu bearbeiten, nachdem bereits die normale Ausgabe erfolgt ist. Diese Header-Informationen können z.B. Cookies, Weiterleitungen oder Cache-Unterdrückungen sein. Die HTML-Ausgabe muss nicht immer gewollt sein, selbst sogenannter Whitespace (leere Zeilen, Tabulatoren, Leerzeichen, verstecktes Zeichen weil als UTF8 mit BOM gespeichert) kann die Ursache sein.

Glücklicherweise liefert diese Fehlermeldung bereits alle Informationen, die zum Auffinden des Fehlerhaften Codes nötig sind, mit:
  • Datei mit Header-Informationen: In dieser Datei befindet sich der Code zum Modifizieren der Header-Informationen (in dieser Zeile). In der Regel handelt es sich dabei um header() oder setcookie() Befehle.
  • Datei mit HTML-Ausgabe: In dieser Datei befindet sich die HTML-Ausgabe (in dieser Zeile ). Falls dies die letzte Zeile in der Datei ist, befindet sich dort entweder eine ungewollte Leerzeile hinter '?>' (einfach löschen) oder die Datei wurde im falschen Modus hochgeladen (siehe Binär (BINARY) != ASCII - Beim Upload des Forums beachten). Andernfalls solltest du den Code von dieser Stelle hinter die letzte header() oder setcookie() Anweisung verschieben.
Wenn du diesen Fehler erhältst, während du eine Seite nach der Vorlage für in phpBB eingebunde Seiten aufbaust, hast du den Code vermutlich nicht ganz am Anfang deiner Seite eingebaut - selbst <html> oder Kommentare dürfen vorher nicht ausgegeben werden.

Falls sich in der Datei ein (nicht sichtbares) BOM befindet, sollte man die Datei als UTF-8 (ohne BOM) speichern. Siehe dazu auch Was bei Änderungen an Dateien beachtet werden muss!