Felix Riesterer: Warnung! Beware! Uwaga!

Beitrag lesen

Lieber MoaByter,

Das exit; dient nur dem include ..., 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 exitwird das unmöglich.

In den $bufferkommt 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 $redirectwird 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