⊗ppPmHpRHP 400 of 447 menu

Problem med HTTP-responsheader i PHP

I følge HTTP-reglene sendes HTTP-header først, og deretter kroppen av HTTP-svaret. På grunn av dette har arbeid med funksjonen header i PHP sine særegenheter.

Saken er at hvis det er noen utskrift til skjermen før dette funksjonskallet, vil den bli tolket som starten på svar-kroppen. I dette tilfellet vil kallet til funksjonen header føre til en PHP-advarsel med teksten headers already sent. Samtidig kan headerne til og med bli sendt. Det kan hende feilen ikke engang vises (avhenger av PHP-innstillingene). Men oftest vil dette bare være på lokal maskin, og når nettstedet lastes opp på internett vil alt gå i stykker.

Med utskrift til skjermen menes hvilken som helst tekst. For eksempel slik:

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

Eller en tom linje:

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

Eller et mellomrom:

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

Eller en tagg:

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

Eller utskrift via echo:

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

Eller utskrift via var_dump:

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

Selv PHP-advarsler vil være utskrifter til skjermen. I det følgende eksemplet henvises det med vilje til en ikke-eksisterende variabel, noe som vil føre til utskrift av en advarsel:

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

Inndelinger av PHP-klammeparenteser genererer også utskrift til skjermen:

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

Skap med vilje en utskrift til skjermen før funksjonen header. Studer teksten til feilen som oppstår.

Korriger feilen som er begått i denne koden:

<!DOCTYPE html> <html> <head> <?php header('Content-Type: text/html'); ?> </head> <body> tekst <body> <html>
Norsk
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi bruker informasjonskapsler for nettstedets funksjonalitet, analyse og personalisering. Behandling av data foregår i henhold til Personvernerklæringen.
godta alle tilpass avvis