Lieber MoaByter,
Das
exit;
dient nur deminclude ...
, damit er danach nicht den folgenden Code durchläuft. Ein schnelles Ende sozusagen.
das verursacht vor allem später neue Probleme. Angenommen, Du willst nach dem Abarbeiten eines includierten Scripts eine Testausgabe (Log/Debug etc.) in eine Datei machen. Durch das exit
wird das unmöglich.
In den
$buffer
kommt also die gesamte Seite 'rein?
Wenn Du mit „Seite“ das HTML-Dokument (oder was auch immer PHP ausgeben soll) meinst, ja.
file_get_contents(xyz.php);
Das ist grober Unfug. PHP-Scripte sollen ja geparst und ausgeführt werden. Was soll ich im Script mit seinem Quelltext?
Und dem
$redirect
wird die Seitenadresse zugewiesen? Denn leer darf's ja nicht bleiben, da sonst nix gesendet wird.
Das ist ein Vorschlag von mir, um Dir zu zeigen, wie man trotz eines Redirects ein PHP-Script nicht mit exit
abbrechen muss. Wie Du das tatsächlich handhabst, überlasse ich komplett Dir. Im Beispiel sollte nur klar werden, dass man das Ausgeben von Daten mittels eines geeigneten Programmverlaufs vermeiden kann, wenn im Script per HTTP-Header eine Weiterleitung veranlasst werden soll, denn in diesem Fall hätte ein (vollständiges) HTML-Dokument kaum einen Sinn, weil es der Benutzer ja nicht angezeigt bekommt.
Bis zum
header(...)
-Befehl wird bei mir ja nix gesendet, also gibt's auch keine Fehlermeldung über gesendetet Daten.
Befehle gibt es auf der Kommandozeile. In einem Script spricht man üblicherweise von Anweisungen. Der Aufruf einer Funktion wie header()
ist eine solche Anweisung.
Wenn PHP einen Fehler an den Browser ausgibt, dann kommt es unerwarteter Weise eben doch zu Ausgaben vor Deinem header-Aufruf. Aber wenn Du das sicher ausschließen kannst, dann ist eine Ursache ja schon sicher ausgeschlossen.
Das mus ich mal ausprobieren.
Unbedingt!
Liebe Grüße
Felix Riesterer