So überprüfen Sie, ob Header bereits in PHP gesendet wurden

Lesezeit: 1 Minute

Ich denke, die meisten von uns kennen den berüchtigten Fehler „Header bereits gesendet“ in PHP. Kann ich irgendwie überprüfen, ob Header bereits gesendet wurden?

Es wäre wirklich praktisch, dies zu tun, bevor Sie versuchen, einige SESSION-Daten oder ähnliches festzulegen.

Vielen Dank!

  • Warum nicht einfach Stellen Sie sicher, dass Sie es nicht tun Header senden, bevor Sie diese Funktionen aufrufen?

    – Dominic Rodger

    12. Mai 2010 um 16:11 Uhr

  • @Dominic Rodger: Was ist, wenn dieses Skript ein Add-on oder eine Erweiterung oder eine andere Art von Erweiterungs-/Einschlussskript sein soll? Code von Drittanbietern kann sich darauf auswirken, ob Header bereits gesendet werden oder nicht.

    – Andi E

    12. Mai 2010 um 16:16 Uhr

Benutzer-Avatar
Russell Dias

PHP hat eine Funktion headers_sent() Damit können Sie überprüfen, ob die Header bereits gesendet wurden, bevor Sie etwas unternehmen. So könnten Sie die Funktion in Ihrem Code verwenden:

if(headers_sent())
{ //if headers already sent out print some message.
echo "Please go to yahoo.com";
}
else{
//send the user automatically to test.php
header('Location: http://yahoo.com');
exit;
}

  • Dann vergiss es nicht exit() nach header()!

    – Nämlich

    11. April 2013 um 19:16 Uhr

Ja, du kannst die verwenden headers_gesendet Funktion.

Überprüft, ob oder wohin Header gesendet wurden.

Sie können keine weiteren Header-Zeilen mit der Funktion header() hinzufügen, wenn der Header-Block bereits gesendet wurde. Mit dieser Funktion können Sie zumindest verhindern, dass HTTP-Header-bezogene Fehlermeldungen angezeigt werden. Eine weitere Option ist die Verwendung von Output Buffering.

headers_list kann auch von Interesse sein, die ein Array aller gesendeten Header zurückgibt.

1228850cookie-checkSo überprüfen Sie, ob Header bereits in PHP gesendet wurden

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy