
Unser Forum:
Zum Webmasterforum - Zum Foren-Archiv
[PHP] Vermeidung von "headers already sent by"
geschrieben von spielewebDiese Fehlermeldung steht im direkten Zusammenhang mit der Funktion header().
Die Fehlermeldung ensteht dadurch, dass vor dem Aufruf von header() schon etwas zum Client gesendet wurde. Es ist darauf zu achten, dass weder HTML- noch PHP-Fragmente zum Browser gesendet werden. Oftmals reicht schon ein einzelnes Leerzeichen vor der Funktion header() aus, um diesen Fehler zu verursachen.
Eine weitere Fehlerquelle sind die Standard-Fehlermeldungen von PHP. Codefragmente vor dem header() Befehl können Fehlermeldungen erzeugen, die allerdings mit dem @unterdrückt werden können.
Fehlt dieses @ z.B. bei einer MySQL-Abfrage vor dem header()-Befehl und es kommt zu einem Fehler, so wird die Fehlermeldung von MySQL zum Browser gesendet - dieses würde dann auch zu einem header()-Fehler führen.
Es gibt zwei Lösungen der Problems:
1. Ausgabe Buffern mit ob_start()
Man setzt einfach vor den Code die PHP-Funktion ob_start():
ob_start();
// Dein restlicher PHP-Code
?>
2. Einfach sauber programmieren
Das ist die bessere Möglichkeit. Man sollte einfach immer sauber programmieren: Erst kommt header() dann später kommt die Ausgabe wie echo.Autor: Franky
Andere Webmaster-Seiten:
Homepage Tools - Webmaster Verzeichnis
Kostenloses für Webmaster:
Kostenloses Gästebuch - Kostenloser Newsletter - Kostenloses Forum - Kostenloser Besucherzähler