⊗ppPmHpRHP 400 of 447 menu

Probleem met HTTP-antwoordheaders in PHP

Volgens de HTTP-regels worden eerst de HTTP-headers verzonden en daarna de body van het HTTP-antwoord. Hierdoor heeft het werken met de functie header in PHP zijn eigen eigenaardigheden.

Het punt is dat als er enige uitvoer naar het scherm is vóór de aanroep van deze functie, dit wordt geïnterpreteerd als het begin van de antwoordbody. In dit geval zal de aanroep van de functie header leiden tot een PHP-waarschuwing met de tekst headers already sent. Desondanks kunnen de headers zelfs worden verzonden. De fout wordt mogelijk niet eens weergegeven (afhankelijk van de PHP-instellingen). Maar meestal zal dit alleen op de lokale omgeving gebeuren, en wanneer de site online wordt gezet zal alles breken.

Onder uitvoer naar het scherm wordt elke tekst verstaan. Bijvoorbeeld zo:

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

Of een lege regel:

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

Of een spatie:

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

Of een tag:

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

Of uitvoer via echo:

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

Of uitvoer via var_dump:

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

Zelfs PHP-waarschuwingen zijn uitvoer naar het scherm. In het volgende voorbeeld wordt opzettelijk verwezen naar een niet-bestaande variabele, wat leidt tot de weergave van een waarschuwing:

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

Onderbrekingen van PHP-haakjes genereren ook uitvoer naar het scherm:

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

Creëer opzettelijk uitvoer naar het scherm vóór de functie header. Bestudeer de tekst van de optredende fout.

Repareer de fout die gemaakt is in deze code:

<!DOCTYPE html> <html> <head> <?php header('Content-Type: text/html'); ?> </head> <body> tekst <body> <html>
Nederlands
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wij gebruiken cookies voor de werking van de site, analyse en personalisatie. De verwerking van gegevens gebeurt volgens het Privacybeleid.
alles accepteren aanpassen weigeren