Как отправлять Php ошибки по почте?
Пример ошибки: 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();
Так же смотри debug_backtrace().
Цитата:
Originally posted by Shiizoo
Константы __FILE__, __LINE__, __CLASS__, __METHOD__ (php5), __FUNCTION__ содержат данные, актуальные для того места, где они были вызваны.
Так же смотри debug_backtrace().
Константы __FILE__, __LINE__, __CLASS__, __METHOD__ (php5), __FUNCTION__ содержат данные, актуальные для того места, где они были вызваны.
Так же смотри debug_backtrace().
Ок. Будем юзать.
Цитата:
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
Насколько мне известно, такие трюки с мэжик константами умеют только сами встроенные функции, в нашем случае это trigger_error/user_error.
Можно заменить стандартный обработчик ошибок через set_error_handler(), тогда на вход твоей функции будут поступать тип ошибки, ее текст, файл, строка, имена и
значения всех переменных в текущей области видимости.
Иначе придется самому вписывать на каждый вызов __FILE__ и т.п.
+, можно юзать backtrace, чтобы узнать что и где вызывалось.
Цитата:
Originally posted by Shiizoo
:D
Иначе придется самому вписывать на каждый вызов __FILE__ и т.п.
+, можно юзать backtrace, чтобы узнать что и где вызывалось.
:D
Иначе придется самому вписывать на каждый вызов __FILE__ и т.п.
+, можно юзать backtrace, чтобы узнать что и где вызывалось.
Жаль... А так не хотелось в скриптах на мег ручками выставлять данные константы.
нормаалл)) ctrl+h/r (или как там еще) и все путем;)