Warning: Cannot modify header information - headers already sent by
Startseite > PHP Fehler > Warning: Cannot modify header information - headers already sent by
Diese Meldung erscheint auch oft bei alten PHP Scripten die unter neuen PHP Versionen mit anderen Einstellung verwendet werden sollen.
Die Fehlermeldung
Warning: Cannot modify header information - headers already sent by (output started at E:php-fehlertest_code.php:5) in E:php-fehlertest_code.php on line 7
Die Warnung sagt, das php eine Headeranweisung via der Funktion header() nicht senden konnte, da bereits in der Zeile 5 eine Ausgabe erfolgte.
Der Code
Code:
Ursache: Ausgabe per echo vor der Funktion header
Weitere Beispiele
Code:
Hier ist vor dem <?php Start-Tag ein Leerzeichen, wenn der Start-Tag ganz nach oben verschoben wird, sollte der Fehler nicht mehr auftreten.
Code:
Hier wurde PHP kurz unterbrochen um HTML auszugeben, dadurch kann man die Header() Funktion hier nicht mehr nutzen.
Zur Problemlösung:
Es sollte bei der Verwendung der header() Funktion darauf geachtet werden das vor dem Aufruf dieser Funktion noch keine Daten vom Server zum Browser gesendet wurden.
Manchmal sind es schon kleine Flüchtigkeitsfehler die diese Fehlermeldung verursachen. Zum Beispiel ein Leerzeichen oder Zeilenumbruch vor dem <?php Start-Tag fühen bereits dazu, daß Daten an den Browser gesendet werden.
Bei einigen Webauftritten ist es aber auch der Aufbau bzw. die Struktur der Seite, die die Verwendung von der header() Funktion unmöglich macht. Manche Webauftritte haben ihre Dateien so verschachtelt mit include() das vor den eigentlichen PHP Code jedesmal schon HMTL gesendet wird.
Warning: Cannot modify header information - headers already sent by (output started at E:php-fehlertest_code.php:5) in E:php-fehlertest_code.php on line 7
Die Warnung sagt, das php eine Headeranweisung via der Funktion header() nicht senden konnte, da bereits in der Zeile 5 eine Ausgabe erfolgte.
Der Code
Code:
- $string = 'Hallo';
- echo $string;
- header("Location: http://localhost/test_code.php");
Ursache: Ausgabe per echo vor der Funktion header
Weitere Beispiele
Code:
- <?php
- //Fehler, Leerzeichen von <?php
- $string = 'Hallo';
- header("Location: test_code.php");
- ?>
Hier ist vor dem <?php Start-Tag ein Leerzeichen, wenn der Start-Tag ganz nach oben verschoben wird, sollte der Fehler nicht mehr auftreten.
Code:
- <?php
- $wert = 5,
- ?>
- <div>Fehler</div>
- <?php
- $string = 'Hallo';
- header("Location: test_code.php");
- ?>
Hier wurde PHP kurz unterbrochen um HTML auszugeben, dadurch kann man die Header() Funktion hier nicht mehr nutzen.
Zur Problemlösung:
Es sollte bei der Verwendung der header() Funktion darauf geachtet werden das vor dem Aufruf dieser Funktion noch keine Daten vom Server zum Browser gesendet wurden.
Manchmal sind es schon kleine Flüchtigkeitsfehler die diese Fehlermeldung verursachen. Zum Beispiel ein Leerzeichen oder Zeilenumbruch vor dem <?php Start-Tag fühen bereits dazu, daß Daten an den Browser gesendet werden.
Bei einigen Webauftritten ist es aber auch der Aufbau bzw. die Struktur der Seite, die die Verwendung von der header() Funktion unmöglich macht. Manche Webauftritte haben ihre Dateien so verschachtelt mit include() das vor den eigentlichen PHP Code jedesmal schon HMTL gesendet wird.
Kommentar schreiben
andere Themen:
22.02.2005
Warning: Invalid argument supplied for foreach()22.02.2005 Parse error: parse error, unexpected '='
22.02.2005 Notice: Undefined index
22.02.2005 Warning: session_start(): Cannot send session cookie - headers already sent by
Zurück

Kommentare
15.11.2007: fips
20.11.2007: ashyda
04.12.2007: ADMIN
27.12.2007: tobsi
25.02.2008: Axel Albitz
13.03.2008: Marcel Schweiz
14.03.2008: Dark
08.04.2008: Omicron
23.04.2008: Hoto
10.05.2008: wowo
27.07.2008: akita
29.09.2008: PHPler
21.10.2008: Verena
06.01.2009: othmar
09.01.2009: Roman
18.02.2009: Tarnfisch
19.02.2009: Micha