[ticket/10188] Use ob_get_level in msg_handler for output buffering check.

Output buffering may be enabled via various approaches, among them:

 * output_buffering in php.ini;
 * output_handler in php.ini enables output_buffering;
 * ob_start call.

ob_get_level allows us to query php runtime for the actual output buffering
status.

PHPBB3-10188
This commit is contained in:
Oleg Pudeyev 2011-05-22 06:48:59 -04:00
parent 5e81b058cf
commit 9b62500a10

View file

@ -3743,7 +3743,7 @@ function msg_handler($errno, $msg_text, $errfile, $errline)
if (strpos($errfile, 'cache') === false && strpos($errfile, 'template.') === false) if (strpos($errfile, 'cache') === false && strpos($errfile, 'template.') === false)
{ {
// flush the content, else we get a white page if output buffering is on // flush the content, else we get a white page if output buffering is on
if ((int) @ini_get('output_buffering') === 1 || strtolower(@ini_get('output_buffering')) === 'on') if (ob_get_level() > 0)
{ {
@ob_flush(); @ob_flush();
} }