Er ist ein häufiger Fehler. Typischer Fehler. Jeder PHPler, behaupte ich, kennt ihn. Gerade deswegen möchte ich ihn einfach einmal hier erwähnt haben:
Warning: Cannot modify header information - headers already sent by ...
Werbeblocker aktiv?
Vermutlich aufgrund eines Werbeblockers kann an dieser Stelle leider keine Werbung angezeigt werden. Als Blog ist diese Website jedoch darauf angewiesen, um diverse Kosten abdecken zu können. Vielleicht möchtest du Servaholics ja in deinem Werbeblocker als Ausnahme hinzufügen und so unterstützen? 🙂
Sofern der Header z.B. über session_start() verändert werden soll, könnte der Header auch wie folgt lauten:
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by ...
Die Fehlermeldungen sind in ihrer Aussage recht eindeutig: Ein oder mehrere Header wurden bereits abgeschickt, deswegen kann dieser nicht mehr, bspw. durch eine Weiterleitung (header("Location: ...")), verändert werden. Die zwei häufigsten Fehler sind folgende:
- Ein Leerzeichen bzw. Absatz vor dem ersten <?php im Script bzw. nach dem letzten ?>: Dieses Zeichen gilt bereits als Ausgabe, deswegen werden auch alle Header ausgegeben. Eine Bearbeitung ist deshalb nicht mehr möglich.
- Genau so dürfen auch keine beabsichtigten Ausgaben vor einer Bearbeitung des Headers stattfinden. Diese Ausgabe darf weder per echo/print noch per ?>Text<?php passieren.
Speziell für die Nutzer des Editors Notepad++ ein Tipp: Wenn dieser Fehler direkt in Zeile 1 erscheint, solltet ihr prüfen, ob die Datei im Zeichensatz UTF-8 (Codierung) gespeichert wird. Scheinbar ist der Fehler mit der Umstellung auf ANSI behoben 😉 noch besser mit einer Umstellung auf UTF-8 ohne BOM behoben, danke an @AsgarSerran 🙂