Обнаружение, был ли контент отправлен до строки в php-файле в codeigniter - PullRequest
3 голосов
/ 19 октября 2010

Я пытаюсь изменить способ работы файлов ошибок из system/application/errors, регистрируя ошибки и отображая страницу 404. Однако иногда ошибка возникает в середине страницы, и мне нужно отобразить только страницу ошибки.

Я пытался проверить, отправлены ли заголовки, и очистил буфер вывода, но это не сработало. Есть предложения?

Обновление: Мой вопрос, кажется, сбивает с толку людей, поэтому я уточню. Я намерен показать пользовательскую страницу размером 500 в том случае, если через некоторое время после отправки части содержимого возникает ошибка, и записать условия, в которых произошла ошибка, чтобы пользователь не увидел уродливую страницу и хакер выиграл не вижу утечек. Основная проблема заключается в удалении контента до появления ошибки.

Стратегии, которые до сих пор не работали:

  • проверка с использованием ob_end_clean
  • $CI = & get_instance(); $CI->output->set_output('only the 500 message');
  • добавление функции _output($data) к контроллеру и отображение только сообщения 500, если найден определенный шаблон в файлах system/application/errors/*.php

Любая помощь очень ценится.

Ответы [ 3 ]

1 голос
/ 20 октября 2010

Вы ищете пользовательские страницы ошибок 404 для codeigniter?

http://maestric.com/doc/php/codeigniter_404

1 голос
/ 21 октября 2010

Вы имеете в виду изменение способа обработки ошибок CI по умолчанию?

http://codeigniter.com/user_guide/general/errors.html

http://www.askaboutphp.com/172/codeigniter-handling-errors.html

Изучите эти два руководства, чтобы узнать, какобрабатывать ошибки codeigniter и PHP.

Включите ведение журнала ошибок в текстовый файл или что-то еще, а затем отключите все ошибки php (это устанавливается в index.php) с помощью

error_reporting(E_ERROR);

, вам следует перейти с E_ALLв E_ERROR, чтобы показать только сообщения для фатальных проблем во время выполнения.Это скроет все ошибки php, кроме тех, которые остановят выполнение вашего скрипта.

0 голосов
/ 19 октября 2010

На этой странице прокрутите вниз до 27 мая 2008. http://php.net/manual/en/function.header.php

Если заголовки не были отправлены, заголовок ('Location:'. $ url); В противном случае он использует JavaScript для перенаправления. Если JavaScript отключен, он использует метатег.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...