Если сделать die или exit то вообще ничего не показывается

Кощей

if(!$needle) die("ooh");
Если сделать die или exit то вообще ничего не показывается

Раньше такого не было, штука очень раздражает, может кто сталкивался и знает как справится

Проблема в том что если используется exit в коде то вообще ничего не выводится
Например при вызове функции из ядра фреймворка CodeIgniter для страницы 404
PHP:
	function show_404($page = '')
	{	
		$heading = "404 Page Not Found";
		$message = "The page you requested was not found.";

		log_message('error', '404 Page Not Found --> '.$page);
		echo $this->show_error($heading, $message, 'error_404', 404);
		exit;
	}
Получается белый экран, и никакой ошибки, хотя строка log_message('error', '404 Page Not Found --> '.$page); отрабатывает

Также если поставить логер под
echo $this->show_error($heading, $message, 'error_404', 404); он тоже отработает но на экран ничего не выводится !

Я дурею уже изза этого, какие соображения ?

phpinfo() системы
 

zerkms

TDD infected
Команда форума
Также если поставить логер под
echo $this->show_error($heading, $message, 'error_404', 404); он тоже отработает но на экран ничего не выводится !
а должно выводиться?

var_dump()
phpfaq.ru/debug
 

Кощей

if(!$needle) die("ooh");
Ну если не делать exit то выведется, а под ним остальной контент странички
 

Кощей

if(!$needle) die("ooh");
zerkms
Я про это сразу подумал, но судя по конфигу такого нет, все флушится сразу
 

zerkms

TDD infected
Команда форума
Кощей
я тебя не понимаю. прошло уже 20 минут. а ты до сих пор не посмотрел, что делает тот метод?
 

Кощей

if(!$needle) die("ooh");
А, да он возвращает хтмл, этот хтмл логируется нормально
код метода
PHP:
	/**
	 * General Error Page
	 *
	 * This function takes an error message as input
	 * (either as a string or an array) and displays
	 * it using the specified template.
	 *
	 * @access	private
	 * @param	string	the heading
	 * @param	string	the message
	 * @param	string	the template name
	 * @return	string
	 */
	function show_error($heading, $message, $template = 'error_general', $status_code = 500)
	{
		set_status_header($status_code);
		$message = '<p>'.implode('</p><p>', ( ! is_array($message)) ? array($message) : $message).'</p>';
		if (ob_get_level() > $this->ob_level + 1)
		{
			ob_end_flush();	
		}
		ob_start();
		log_message('error', APPPATH.'errors/'.$template.EXT);
		include(APPPATH.'errors/'.$template.EXT);
		$buffer = ob_get_contents();
		ob_end_clean();
		return $buffer;
	}
 

dimagolov

Новичок
zerkms, у него echo буферизируется и не сбрасывается клиенту по exit. а если exit не делать, то выводится весь остальной контент, чего ему не хочется.
 

Кощей

if(!$needle) die("ooh");
zerkms
Я, блин, тоже не верю но оно блин есть

-~{}~ 15.10.09 02:15:

Если выставить
output_buffering 0
начинает работать,
Чем отключение аутпут буфера грозит ? смогу ли я в таком случае использовать функцию header()
 

zerkms

TDD infected
Команда форума
сможешь. вот только читерить уже не получится: перед отправкой хэдеров не получится делать никакой вывод.
 
Сверху