Warning: Cannot modify header information – headers already sent by

Dies ist eine oft vorkommender Fehler bei PHP-Anfängern. Er kommt häufig vor wenn man Cookies setzen möchte, oder Header Information mit header(); manipulieren möchte.

Fehlermeldung:
Warning: Cannot modify header information - headers already sent by

Erklärung der Fehlermeldung:
Wenn ein Server eine Anfrage via HTTP gestellt bekommt, und der Server sieht es ist eine PHP-Datei die der User verlangt, dann fordert er PHP auf eine „HTML“-Seite zu generieren die er an den Benutzer wieder über HTTP zurücksenden kann. Der Header, also die Antwort des Webservers, kann von PHP vorher manipuliert werden, z.B. um eine Umleitung zu erzeugen header(„location:http://www.meinubuntu.de“);, oder um eben einen Cookie zu setzen, ABER wenn auch nur ein Zeichen vorher von PHP ausgegeben wurde funktioniert das schon nicht mehr, weil der Header dann schon an den Benutzer zurück gesendet wird, und PHP ihn dann logischerweise nicht mehr manipulieren kann.

Lösung:
Du musst sicherstellen das vor einer Headermanipulation header();, oder setcookie(); keine Textausgaben stattfinden, weder Zeilenumbrüche noch Sonstige Ausgaben.

Beispiele:

Falsch:
<?php
echo "test";
setcookie("test","0");
?>

Richtig:
<?php
setcookie("test","0");
echo "test";
?>

Noch ein Beispiel:

Falsch:
<html>
<?php
setcookie(„test“,“0″);
?>

Richtig:
<?php
setcookie("test","0");
?>

<html>

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.