tisdag 8 februari 2011

Sätt på output buffering i PHP

Artikeln är flyttad till det nya dbwebb-forumet: http://dbwebb.se/forum/viewtopic.php?t=3556

--

Output buffering är ett sätt att undvika felmeddelanden i form av :
Warning: Cannot modify header information - headers already sent by (output started at /home/saxon/teachers/tek/mos/www/test/1.php:2) in /home/saxon/teachers/tek/mos/www/test/2.php on line 4
eller
Warning: Cannot modify header information - headers already sent by (output started at /usr/home/mos/htdocs/dbwebb.se/htmlphp/kmom04/me2/incl/config.php:4) in /usr/home/mos/htdocs/dbwebb.se/htmlphp/kmom04/me2/incl/test/kmom03_sessiondestroy.php on line 17 
Med output buffering så buffras all output och skickas när den är klar. Du ändrar detta beteende i php.ini-filen eller med en .htaccess-fil.

Välj något av alternativen för att sätta på eller stänga av output buffering.

php.ini:
output_buffering=4096
output_buffering = Off

.htaccess i samma katalog som din webbapplikation:
php_value output_buffering 4096
php_value output_buffering Off

I studentmiljö och för utveckling så kan det vara okey att använda output_buffering för att komma runt problemet. Om du kodar för en riktig webbplats så bör du dock ta reda på det egentliga problemet och skriva din kod rätt.

Men, det funkar utmärkt som en snabb "workaround".

Felmeddelandet "Cannot modify header" beskrivs i följande artikel:
http://db-o-webb.blogspot.com/2010/02/warning-cannot-modify-header.html

Inga kommentarer:

Skicka en kommentar