Versio

Header already sent

De header already sent foutmelding is een van de meest voorkomen foutmeldingen waar op forums vragen over worden gesteld. Deze fout krijg je als niet precies weet wat bijv. de header functie doet. In deze tutorial wil ik uitleggen hoe het werkt en waarom je deze foutmelding krijgt.

Gesponsorde koppelingen

Inhoudsopgave

  1. HTTP request/reponse
  2. Header already sent
  3. Hoe op te lossen?
  4. Cookies en Sessions

 

19 reacties op 'Header already sent'

PHP hulp
PHP hulp
0 seconden vanaf nu
 
Gesponsorde koppelingen
Donna Deeplink
Donna Deeplink
1 jaar geleden
 
0 +1 -10 -1
ob_start() ?
Karl Karl
Karl Karl
1 jaar geleden
 
7 +1 -1 -1
Nee, ob_start is hier niet voor bedoeld.
Je moet gewoon net scripten.
Tobias Tobias
Tobias Tobias
1 jaar geleden
 
6 +1 -0 -1
Duidelijk en handig
Er zijn veel vragen hierover op het forum
Wouter J
Wouter J
1 jaar geleden
 
3 +1 -0 -1
Even een veranderingen gedaan:
- Voorbeeld 2 uitgebreid met tekst over een spatie (ook output)
- Voorbeeld 3 toegevoegd over een BOM character
Rogier Burton
Rogier Burton
1 jaar geleden
 
3 +1 -0 -1
Zeer duidelijke tutorial Wouter! Klasse! Echter, is het een idee om een javascript oplossing te bespreken?
Wouter J
Wouter J
1 jaar geleden
 
2 +1 -0 -1
Rogier, bedoel je de javascript oplossing voor location?
Dat is mogelijk, maar ik heb hier niet voor gekozen omdat de header functie veel meer dingen bevat dan alleen location.
Rogier Burton
Rogier Burton
1 jaar geleden
 
0 +1 -7 -1
Juist. Ik heb in het verleden wel eens de volgende functie gebruikt. Als ik er nu op terug kijk, keur ik het af maar wou het toch graag met jullie delen:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
function moveto($path) {
    echo '<script type='text/javascript' language='javascript'>window.location=''.$path.'';</script>';
}
TJVB tvb
TJVB tvb
1 jaar geleden
 
5 +1 -0 -1
Waarom wil je iets delen dat je zelf al afkeurt? Slechte voorbeelden zijn er al genoeg.
Max van den Bosch
Max van den Bosch
1 jaar geleden
 
5 +1 -0 -1
Heel duidelijke tutorial. Moet je meer van gaan maken! (Heb je talent ofzow?)
- SanThe -
- SanThe -
1 jaar geleden
 
4 +1 -0 -1
Netjes en duidelijk.

(Kleine typo 2e pagina: vermeiden => vermijden)
Wouter J
Wouter J
1 jaar geleden
 
3 +1 -0 -1
Bedankt voor de spelfout. Ik heb hem meteen verbeterd.
Write Down
Write Down
1 jaar geleden
 
3 +1 -0 -1
Mooi en degelijk. Nu maar hopen dat de beginners dit eens lezen...
Jeffrey G
Jeffrey G
1 jaar geleden
 
1 +1 -1 -1
Vooral bij inlogscripts gebruik ik vaak een
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
header('Location: ...');
ergens midden in de code.

Omdat mijn code verder wel strak is qua witruimte etc krijg ik hier eigenlijk nooit errors mee.

Wat je dus eigenlijk zegt is dat ik ook zulke headers voor de doctype moet opvangen? En dus alle form submits eigenlijk het beste helemaal bovenaan de pagina beter kan opvangen met php dan midden in de pagina?

Dit gaat voor mij waarschijnlijk wel verwarrend worden als code niet op chronische volgorde van handelingen staat, maar als het beter is dan is het beter =)!
Wouter J
Wouter J
1 jaar geleden
 
2 +1 -0 -1
Het beste is inderdaad om de PHP afhandeling boven het doctype te doen en alleen het echoën tussen de body tags. Natuurlijk moet je hier soms wat if en for statements bij maken, maar echte verwerking met er niet gebeuren.
Dennis Sluijk
Dennis Sluijk
1 jaar geleden
 
1 +1 -0 -1
Ik had wel eens met vorige scripten dat header('location: '); het eerst wel deed en na een tijdje opeens niet meer dat vind ik raar.
Jacco Brandt
Jacco Brandt
12 maanden geleden
 
0 +1 -0 -1
Als je met een MVC-framework gaat werken, dan komt de HTML-code altijd als laatste, en hoef je je hier geen zorgen meer over te maken.
Eddy Bisschops
Eddy Bisschops
8 maanden geleden
 
0 +1 -0 -1
Wouter, mijn complimenten.. echt een hele nette uileg. Toch een klein beetje feedback: Is het misschien een idee om in het begin als je het hebt over HTTP request e.d. ook een stukje dieper erop in te gaan d.m.v. uitleg over DNS en rootservers?
Wouter J
Wouter J
8 maanden geleden
 
0 +1 -0 -1
@eddy, bedankt.
Deze tutorial heb ik vooral gemaakt om het probleem uit te leggen die je met de header already sent foutmelding krijgt. Om dit te begrijpen heb ik heel global even snel uitlegt hoe het werkt. Ik denk dat als ik dit uitbereid het niet duidelijker wordt voor beginners.

Het is wel goed om het een keer daarover te hebben, maar in deze tutorial wil ik het voorlopig even globaal laten.
Misschien dat ik het wel in een andere tutorial ga stoppen.
Eddy Bisschops
Eddy Bisschops
8 maanden geleden
 
0 +1 -0 -1
Goed punt, ik zie ernaar uit!

Om te reageren heb je een account nodig en je moet ingelogd zijn.

  • Details
  • Wouter J
    Door:
    Wouter J
  • 1 jaar geleden
  • 5.029 x bekeken
Get Adobe Flash player