2010-05-17 3 views
1

Я проникаю от PHP4 к PHP5PHP терпит неудачу, когда функция не определена?

У меня есть это в моей .htaccess:

php_flag display_errors on 
php_value error_reporting 2039 

Который используется, чтобы показать все ошибки.

У меня по-прежнему возникают некоторые ошибки, но я получал ошибку, когда вызывал функцию, которая не была определена, но теперь она останавливается, где она находится, и отправляет клиенту все до ошибки и ничего не происходит после. Без сообщения об ошибке.

Вот что phpinfo говорит мне:

Directive Local Value Master Value 
display_errors On Off 
error_reporting 2039 6143 

Я хотел бы быть в состоянии видеть мои сообщения об ошибках для устранения неисправностей целей.

Может ли кто-нибудь сказать мне, что мне нужно сделать? Благодаря!!

+0

Можете ли вы показать полный PHP-скрипт? Может случиться так, что он завершится с ошибкой синтаксического анализа, которая действительно не улавливается обработчиком ошибок. –

+0

error_reporting (E_ALL) в вашем php? – Kemo

+0

ОК, так что оказалось, что я включил страницу, на которой была error_reporting (! E_NOTICE); в верхней части страницы (но моя текущая страница не говорила об этом, только включенную страницу). Теперь я могу понять, почему это помешало бы моей ошибке показать, но то, что мне кажется очень любопытным, - это то, почему это только начинало быть проблемой сейчас, когда я перешел на php5 и никогда не вызывал проблем, когда я был на php4 –

ответ

5

Если все не удается, просто поставить этот код в начале вашего (/ каждый) скрипт:

error_reporting(E_ALL); 
ini_set('display_errors', 1); 
+0

Я * думаю * Я знаю этого человека ! : D Willkommen, alter. Ich hab im Postausgang noch eine Mail an dich mit dem Tipp, mal hier reinzuschauen ... –

+0

@Pekka: Это очень личный и чуждый язык :) – Sarfraz

+0

@Sarfraz только этот раз :) Он коллега и мой помощник, который я «Мы хотели пригласить здесь надолго (но здесь я оказался здесь независимо от меня). –

1

Это должно показать вам все сообщения:

ini_set('display_errors', true); 
error_reporting(E_ALL); 
1

Я предположил бы, что вы PHP 5 версия> = PHP 5.2.0 и что исходный уровень отчетности об ошибках был E_ALL & ~E_NOTICE (или E_ALL^E_NOTICE, оба имеют одинаковый результат).

До PHP 5.2.0 E_ALL имел значение 2047, так что ваш уровень ошибок было 2039 из-за не включая E_NOTICE уровня (8). Начиная с PHP 5.2.0 E_ALL изменен на 6143 (и с PHP 5.3.0 до 30719), то есть E_ALL & ~E_NOTICE больше не 2039, а 6135 (или 30711 в PHP 5.3).

Что касается не отображения ошибок (вызов неопределенной функции должен быть фатальной ошибкой!), См. Другие ответы.

+0

Так что, похоже, мне всегда будет нужен мой уровень ошибок Max-8. Интересно, есть ли способ выразить это в .htaccess –

Смежные вопросы