Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как отправлять Php ошибки по почте?

428
23 мая 2005 года
covex
49 / / 20.06.2000
Почти все мы делаем ошибки при написаниии чего-либо: то забудем ";" поставить, то еще что-то. Соответственно ошибки светятся нам при определенных настройках php.ini А у меня возникла необходимость эти ошибки, если они появляются отправлять по почте. Знаю про $php_errormsg, но меня не устраивает что она только говорит что за ошибка, не указывая где она найдена.
Пример ошибки: Notice: Undefined variable: eee in z:\home\test.ru\www\include\mailerror.php on line 2

$php_errormsg содержит только Undefined variable: eee , а мне нужно что бы было указано где "z:\home\test.ru\www\include\mailerror.php on line 2" Можно ли сохранить данный текст в переменной или нет.
Ошибки шлю с помошью error_log();
287
24 мая 2005 года
Shiizoo
958 / / 14.03.2004
Константы __FILE__, __LINE__, __CLASS__, __METHOD__ (php5), __FUNCTION__ содержат данные, актуальные для того места, где они были вызваны.

Так же смотри debug_backtrace().
428
24 мая 2005 года
covex
49 / / 20.06.2000
Цитата:
Originally posted by Shiizoo
Константы __FILE__, __LINE__, __CLASS__, __METHOD__ (php5), __FUNCTION__ содержат данные, актуальные для того места, где они были вызваны.

Так же смотри debug_backtrace().



Ок. Будем юзать.

428
24 мая 2005 года
covex
49 / / 20.06.2000
Цитата:
Originally posted by covex
Ок. Будем юзать.


Появился новый вопрос про __FILE__ и __LINE__.

Как их можно вызвать в определенном месте скрипта, явно не указывая в этом месте?

Мутновато написал... Скажем если инклюдить файл или вызывать функцию, в которых указаны данные константы, то возвращается значения __LINE__ именно из самого проинклюденного файла или функции. То же самое и с __FILE__.
Если кто-то понял что я объяснил, то что делать и как быть?

Пример:
<?
echo "test1
";
echo "test2
";
echo "test3
";
echo "test4
";
include ('lf.php');
?>

Файл lf.php
<?
echo $line_er=__LINE__; echo $file_er=__FILE__;
?>

Возвращается:
2 ..... www\lf.php

287
24 мая 2005 года
Shiizoo
958 / / 14.03.2004
:D

Насколько мне известно, такие трюки с мэжик константами умеют только сами встроенные функции, в нашем случае это trigger_error/user_error.

Можно заменить стандартный обработчик ошибок через set_error_handler(), тогда на вход твоей функции будут поступать тип ошибки, ее текст, файл, строка, имена и
значения всех переменных в текущей области видимости.

Иначе придется самому вписывать на каждый вызов __FILE__ и т.п.

+, можно юзать backtrace, чтобы узнать что и где вызывалось.
428
25 мая 2005 года
covex
49 / / 20.06.2000
Цитата:
Originally posted by Shiizoo
:D
Иначе придется самому вписывать на каждый вызов __FILE__ и т.п.

+, можно юзать backtrace, чтобы узнать что и где вызывалось.



Жаль... А так не хотелось в скриптах на мег ручками выставлять данные константы.

287
26 мая 2005 года
Shiizoo
958 / / 14.03.2004
нормаалл)) ctrl+h/r (или как там еще) и все путем;)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог