Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: PHP Notice
Форумы портала PHP.SU » » Вопросы новичков » PHP Notice

Страниц (1): [1]
 

1. Инклуд - 22 Июня, 2011 - 22:56:32 - перейти к сообщению
Если в процессе работы скрипта вылазят некоторые ошибки (PHP Notice), есть ли возможность сохранить их в процессе работы, скажем, в какой-нибудь файл? Чтобы потом открыть и посмотреть, были ли где-то проблемы.
Подскажите, пожалуйста. Заранее благодарен.
2. OrmaJever - 22 Июня, 2011 - 23:02:47 - перейти к сообщению
так для себя раньше писал функцию. Написать вначале файла и если будут ошибки они запишутся в error.log
PHP:
скопировать код в буфер обмена
  1. $error_handler = function($errno, $error, $errfile, $errline)
  2. {
  3.         $err = array(E_ERROR=>'Fatal error', E_WARNING=>'Warning error', E_PARSE=>'Parce error', E_NOTICE=>'Notice', E_USER_ERROR=>'Fatal user', E_USER_WARNING=>'Warning user', E_USER_NOTICE=>'Notice user', E_STRICT=>'Strict error', E_DEPRECATED=>'Deprecated', E_USER_DEPRECATED=>'Deprecated user');
  4.    $str = $err[$errno].': '.$error.' in '.$errfile.' on line '.$errline."\n";
  5.  
  6.         if(end(file('error.log')) != $str)
  7.         {
  8.                 $f = fopen('error.log', 'a+');
  9.                 fputs($f, $str);
  10.                 fclose($f);
  11.         }
  12.         exit('Извините произошла ошибка. В скором времени её исправят');
  13. };
  14. set_error_handler($error_handler, E_NOTICE);
3. Инклуд - 22 Июня, 2011 - 23:04:06 - перейти к сообщению
Пора заново литературу читать Улыбка Спасибо большое ;)
4. OrmaJever - 22 Июня, 2011 - 23:12:07 - перейти к сообщению
ой не! это под php 5.3
под рание версии будет выглядеть так
PHP:
скопировать код в буфер обмена
  1. function error_handler($errno, $error, $errfile, $errline)
  2. {
  3.         $err = array(E_ERROR=>'Fatal error', E_WARNING=>'Warning error', E_PARSE=>'Parce error', E_NOTICE=>'Notice', E_USER_ERROR=>'Fatal user', E_USER_WARNING=>'Warning user', E_USER_NOTICE=>'Notice user', E_STRICT=>'Strict error', E_DEPRECATED=>'Deprecated', E_USER_DEPRECATED=>'Deprecated user');
  4.    $str = $err[$errno].': '.$error.' in '.$errfile.' on line '.$errline."\n";
  5.  
  6.         if(end(file('error.log')) != $str)
  7.         {
  8.                 $f = fopen('error.log', 'a+');
  9.                 fputs($f, $str);
  10.                 fclose($f);
  11.         }
  12.         exit('Извините произошла ошибка. В скором времени её исправят');
  13. };
  14. set_error_handler('error_handler', E_NOTICE);
5. vasa_c - 23 Июня, 2011 - 13:25:31 - перейти к сообщению
Они и так сохраняются - в логи.
Может только в php.ini настроить уровень ошибок придётся.

 

Powered by ExBB FM 1.0 RC1