Die Lösung kann nicht Header-Informationen hinzufügen - headers already sent

Bug fix ist dies einfach.
Oft wird die gleiche Meldung zu Beginn der Sitzungen in leicht geändertem Wortlaut:
Warning: Cannot send session cookie - headers already sent Warning: Cannot send session cache limiter - headers already sent
Für den Anfang lernen, wie der Browser mit dem Server kommuniziert zu tun. Es ist ein spezielles Protokoll die header (), setcookie , session_start() , HTTP - Header senden.

Wir betrachten nun diese Warnung.
Warning: Cannot add header information - headers already sent by (output started at /www/script.php:5) on line 20
Cannot add header information - headers already sent um Cannot add header information - headers already sent . Alles ist klar geschrieben. "Kann nicht den Header senden, hat der Zug bereits verlassen", - schreibt uns PHP. Weiter PHP Berichte , in denen das Skript und was seine Leitung ( output started at /www/script.php:5 ) zu dem Schluss gab es Informationen, die die automatische Versenden Header verursacht. Sehr einfach und fix zu finden. Vielleicht kann es HTML - Tags das Echo sein, oder kann einfach nicht den leeren String oder ein Leerzeichen vor dem ersten Tag bemerkt <? .
Sehr oft wird dieser Fehler bewirkt , dass die Datei über verbunden include , wo entweder es gibt einige Abschluss oder eine leere Zeile nach der Schließung PHP - Tag - es ist sehr schwer zu erkennen.

Zur Lösung dieses Problems müssen Sie funktionieren header () (oder session_start (), setcookie ) und die gesamte Logik , die es ist, zu setzen , bevor eine Ausgabe an den Browser. Bewegen Sie einfach höher im Skript.
Immerhin werden Sie noch den Browser umleiten. Das heißt, kein Text noch nicht angezeigt werden! Daher ist der Ausgang etwas gleichzeitig mit dem Location-Header ist nicht sinnvoll. Richtig planen die Struktur des Skripts: einen Block, der Post, sollte nicht ausgegeben etwas an den Browser verarbeitet.

Manchmal haben Sie alles kontrolliert - es gibt nichts überall ist. Ändern Sie den Editor. Schauen Sie sich Ihre Datei in einem anderen Programm. Zum Beispiel Windows Notepad durch Verwendung von Unicode-Codierung an den Anfang der Datei Sonderzeichen Byte Order Mark, in irgendeiner Weise hinzugefügt, ohne setzen Sie kennen zu lernen. Öffnen Sie das Skript in einem anderen Editor und entfernen Sie irrelevante Zeichen. Und zu einem anderen Editor Notepad ändern.

Zahlreiche Fragen aus dem Forum zu machen mir hier einen wichtigen Punkt zu machen:
Dieser Fehler wird nicht angezeigt, von dem, was Sie im Skript haben ", was oben geschrieben wird." Und was nimmt PHP etwas in Ihrem Browser. Dies bedeutet nicht unbedingt Code. Dies kann eine Fehlermeldung. Es kann leer oder HTML-Tag sein. Ja Ja. Für die talentierteste: es ist über alle Symbole an den Browser gesendet, nicht nur diejenigen, die der Browser einen unerfahrenen Benutzer anzeigt. In HTML-Seiten haben den Quellcode. Und er ist das Ergebnis der PHP-Skript, nicht die schöne bukovki mit kartinochku wie denken eine sehr große Anzahl von Menschen.

von phpfaq.ru