Grund für diese Fehlermeldung ist die Ausgabe von Zeichen (auch Leerzeichen) bevor dem Browser, mittels header(), eine HTTP Anfangsinformation gesendet wurde. Somit kann es sogar zu diesem Fehler kommen wenn mittels include(), require() oder anderen Dateizugriffsfunktionen eine Datei gelesen wird, in der sich Leerzeilen befinden die ausgegeben werden weil sie sich nicht zwischen <?php und ?> befinden.
Solche dinge gild es also zu prüfen wenn es zu diesem Fehler kommt.
Die häufigste Ursache für diese Fehlermeldung ist jedoch, das es durch einen anderer Fehler zu einer Meldung gekommen ist. Diese Meldung ist dann also der Verursacher der "Cannot modify header information" Meldung. Sie kann dann also getrost ignoriert werden, weil sie Automatisch verschwindet wenn der eigentliche Fehler (der zuerst ausgegeben wurde) behoben wird.
Soviel zur Ursache und Behebung dieser Fehlermeldung.
Es gibt allerdings noch einen weiteren weg die "Cannot modify header information" Meldung zu Unterdrücken.
Und zwar indem man
- Code: Alles auswählen
PHP_FLAG output_buffering on
- Code: Alles auswählen
output_buffering=on
Es ist aber auf jeden Fall nützlich zu wissen das es diese Option gibt. Zum einem wenn sich die Fehlersuche etwas hinauszögern sollte. Und zum anderem wenn man (als Coder) Ausgaben erzeugt die einem beim debuggen des Skriptes helfen sollen.
Der Besucher wird dann nämlich von den, unter Umständen, sehr langen Fehlermeldungen verschont und bekommt nur (was schon schlimm genug ist) den eigentlichen Fehler bzw. die debugging Informationen gezeigt.
