Hallo
Der Code, den dir Martin hier gegeben hat, muss also an eine Stelle vor der Generierung des ersten an den Browser gesendeten Zeichens stehen.
Oder man verwendet ob_start() ... ob_end_flush();
Dann kann man Ausgaben und header munter mixen.
Das kann man natürlich auch tun.
Ich bin aber kein Freund dieser Lösung, weil ich im Laufe der Jahre (auch hier) zu oft gesehen habe, dass einem (auch mir) das bei seltenem Einsatz der Technik auf die Füße fallen kann. Einerseits, weil man die Möglichkeit hinnimmt und an anderer Stelle vergisst, sie konkret einzusetzen. Dann kommen Fragen wie „Warum geht das hier, dort aber nicht?“ und andererseits weil man schlimmstenfalls nicht mehr weiß, was man damit bezwecken wollte. Man entsorgt den Code und wundert sich, warum das eigene Programm kaputt gegangen ist.
Meine Meinung: Als Hotfix kann man ob_start
und ob_end_flush
benutzen, um ein Programm zum Laufen zu bringen oder am laufen zu halten. Mittelfristig fährt man besser mit der Verinnerlichung und Umsetzung der Regel, dass das Senden der Header mit alledem, was im Vorfeld zu erledigen und zu prüfen ist, vor die Generierung der Ausgabe gehört.
Tschö, Auge
Wir hören immer wieder, dass Regierungscomputer gehackt wurden. Ich denke, man sollte die Sicherheit seiner Daten nicht Regierungen anvertrauen.
Jan Koum, Mitgründer von WhatsApp, im Heise.de-Interview