⊗ppPmHpRHP 400 of 447 menu

Problem mit HTTP-Antwortheadern in PHP

Nach den HTTP-Regeln werden zuerst die HTTP-Header gesendet und dann der HTTP-Antwortkörper. Deshalb hat die Arbeit mit der Funktion header in PHP ihre Besonderheiten.

Die Sache ist die, dass wenn vor dem Aufruf dieser Funktion eine Ausgabe auf den Bildschirm erfolgt, diese als Beginn des Antwortkörpers interpretiert wird. In diesem Fall führt der Aufruf der Funktion header zu einer PHP-Warnung mit dem Text headers already sent. Dabei können die Header sogar gesendet werden. Es kann sogar sein, dass der Fehler nicht ausgegeben wird (hängt von den PHP-Einstellungen ab). Aber meistens wird das nur lokal passieren, und wenn die Website im Internet veröffentlicht wird, bricht alles zusammen.

Unter Ausgabe auf den Bildschirm wird jeder Text verstanden. Zum Beispiel so:

text <?php header('Content-Type: text/html'); ?>

Oder eine leere Zeile:

<?php header('Content-Type: text/html'); ?>

Oder ein Leerzeichen:

<?php header('Content-Type: text/html'); ?>

Oder ein Tag:

<div> <?php header('Content-Type: text/html'); ?> </div>

Oder Ausgabe via echo:

<?php echo 'abc'; header('Content-Type: text/html'); ?>

Oder Ausgabe via var_dump:

<?php $str = 'abc'; var_dump($str); header('Content-Type: text/html'); ?>

Sogar PHP-Warnungen sind Ausgaben auf den Bildschirm. Im folgenden Beispiel wird absichtlich auf eine nicht existierende Variable zugegriffen, was zur Ausgabe einer Warnung führt:

<?php $text += 1; header('Content-Type: text/html'); ?>

Aufgetrennte PHP-Klammern erzeugen ebenfalls Ausgabe auf den Bildschirm:

<?php echo 'abc'; ?> <?php header('Content-Type: text/html'); ?>

Erzeugen Sie absichtlich eine Ausgabe auf den Bildschirm vor der Funktion header. Studieren Sie den Text des auftretenden Fehlers.

Korrigieren Sie den Fehler, der in diesem Code gemacht wurde:

<!DOCTYPE html> <html> <head> <?php header('Content-Type: text/html'); ?> </head> <body> text <body> <html>
Deutsch
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wir verwenden Cookies für den Betrieb der Website, Analyse und Personalisierung. Die Datenverarbeitung erfolgt gemäß der Datenschutzerklärung.
alle akzeptieren anpassen ablehnen