Output buffering en Headers

Als je met headers werkt kan het wel eens voorkomen dat je een fout krijgt van PHP dat er al data weggeschreven is naar de header van een bestand, headers worden gebruikt om aan te geven bij je browser wat er gestuurd word, dit zie jij als gebruiker niet. Dit wordt vaak gebruikt voor sessions of cookies.

Eerst een voorbeeld:



Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
// Dit voorbeeld gaat fout
echo "Dit gaat fout";
header("Location: next.php");
?>


Wat gaat hier nu mis? De echo verprutst het. Deze schrijft al gegevens weg, en dan is de header al gemaakt. Om dit nu op te lossen gebruiken we het commando ob_start();

Voorbeeld:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
// Activeer de output buffering
ob_start();
echo "Nu gaat het goed..";
header("Location: next.php");
ob_end_flush();
?>


En nu heb je het wel goed voor elkaar.
Met de ob_end_flush(); sluit je het af, deze is niet perse nodig, maar geeft wel een nette afsluiting.

Dit is een vrij summier uitleg over ob_start, maar het geeft wel een goede richting van wat je kunt doen.

Voor meer diepgaande informatie kijk op http://mirror.phphulp.nl/ob_start

« Lees de omschrijving en reacties

Inhoudsopgave

  1. Output buffering en Headers

PHP tutorial opties

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.