osCommerce Knowledge Base

Warning: Cannot add header information - headers already sent by

Zuletzt aktualisiert: 14th May, 2004
Beitrag ID: 142



Überblick

Warning: Cannot add header information - headers already sent by (output started at
.../foo.php:n) in ...catalog/includes/functions/general.php on line 29

Obige Warnung tritt immer dann auf, wenn vor dem Aufruf der header-Funktion eine Ausgabe “gesendet” wurde. Bei der Ausgabe kann es sich um Leerzeichen, Zeilenumbrüche, Zeichenketten etc. handeln.

Obwohl die eigentliche Warnung erst beim Aufruf von header() in Zeile 29 der general.php erzeugt wird, ist die Ursache in der Datei foo.php in Zeile n zu suchen.

Am häufigsten ist der Umstand anzutreffen, daß sich hinter dem schließenden PHP-Tag (?>) ein (Steuer-)Zeichen eingeschlichen hat. Dieses Zeichen wird sofort “gesendet”, und sorgt dafür, daß der spätere Aufruf der header-Funktion fehlschlägt.


Lösungsvorschlag

Anhand eines Beispiels zeigen wir, wie das Problem entsteht und wie man es wieder beheben kann. Betrachten wir folgende Fehlermeldung:
Warning: Cannot modify header information - headers already sent by (output started at ...catalog/includes/application_top.php:509) in ...catalog/includes/functions/general.php on line 29


Laut Fehlermeldung wird in der Datei includes/application_top.php in Zeile 509 eine Ausgabe erzeugt. Ein Blick in die entsprechende Zeile verrät die Ursache:

502 // set which precautions should be checked
503   define('WARN_INSTALL_EXISTENCE', 'true');
504   define('WARN_CONFIG_WRITEABLE', 'true');
505   define('WARN_SESSION_DIRECTORY_NOT_WRITEABLE', 'true');
506   define('WARN_SESSION_AUTO_START', 'true');
507   define('WARN_DOWNLOAD_DIRECTORY_NOT_READABLE', 'true');
508 ?>
509 a



Hinter dem schließenden PHP-Tag befindet sich das Zeichen 'a'. Nachdem es entfernt wurde, verschwindet die Fehlermeldung.

 

Verwandte Artikeln

 

Wie hilfreich ist dieser Beitrag?