Автор Тема: Как найти ошибку в PHP-скрипте фруктовой фермы?  (Прочитано 139 раз)

0 Пользователей и 1 Гость просматривают эту тему.

whoohawАвтор темы

  • *
  • Оффлайн
  • Награды Более 10 созданных тем Более 50 сообщений
  • Дата регистрации: Апр 2018
  • Расположение: Тверь
  • Возраст: 29
  • Сообщений: 77
  • Страна: ru
  • Поблагодарили: 9 раз(а)
  • Репутация +3/-1
  • Пол: Мужской
  • Дата рождения:1988-09-21
    • Награды
  • Социальные сети:
    ВКонтакте
5
Тему оценили 2 раз

Каждый день нами движут идеи, когда мы что-то меняем на своем проекте, или же напросто создаем нечто новое. Да или просто, когда редактируем мелочь в коде, случается такая неприятность, как ошибка исполнения скрипта. После обновления мы видим просто белый экран, или ничего не происходит. По итогу оказывается, что это глупая ошибка синтаксиса, или просто где-то не так прописали букву в имени переменной.
Вместо того, чтобы перелопатить весь код в поисках ошибок без единой подсказки, знайте, что подсказки можно включить. Как правило, они по умолчанию отключены.
Впрочем, статья подойдет и не только для обладателей фруктовых ферм.

Включаем показ ошибок.
Существует три способа включения показа.

Для включения вывода всех ошибок и предупреждений в коде PHP-скриптов необходимо добавить в начало нужного *.php файла следующие строки:
ini_set('error_reporting', E_ALL);
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);

Включение вывода всех ошибок и предупреждений в файле .htaccess
php_value display_errors 1
php_value display_startup_errors 1
php_value error_reporting E_ALL

Ну и самый нераспространенный вариант в нашем случае (согласно практике), включить показ в конфигурационном файле php.ini:
error_reporting = E_ALL
display_errors = On
display_startup_errors = On

Получаем на выходе, в случае обнаружения ошибки, сообщения подобного содержания:


К сожалению, данный вывод ошибок помогает не во всех случаях. Бывает, когда к примеру страница бесконечно зацикливается и она просто не открывается, показывая нам 503 ошибку по причине слишком частых обращений к серверу, мы соответственно не увидим ошибку на странице. В таких ситуациях могут помочь логи ошибок сервера. Обязательно включите функцию логирования ошибок и активности на Вашем проекте. Это позволит избежать множество проблем в дальнейшем. Функция подключается на стороне хостинга. Уточняйте и спрашивайте как  @#@@6

ИСТОЧНИК
 

Kuper

  • *
  • *
  • Оффлайн
  • Награды Репутация более 5 На форуме более 1 года Активный участник голосований за форум Болеее 300 сообщений
  • Дата регистрации: Дек 2016
  • Возраст: 28
  • Сообщений: 434
  • Страна: ru
  • Поблагодарили: 40 раз(а)
  • Репутация +8/-1
  • Пол: Мужской
  • Дата рождения:1989-11-19
    • Награды
  • Социальные сети:
    ВКонтакте
Нет оценки
Еще в помощь.
define('E_FATAL',  E_ERROR | E_USER_ERROR | E_PARSE | E_CORE_ERROR | 
        E_COMPILE_ERROR | E_RECOVERABLE_ERROR);
define('ENV', 'dev');
//Custom error handling vars
define('DISPLAY_ERRORS', TRUE);
define('ERROR_REPORTING', E_ALL | E_STRICT);
define('LOG_ERRORS', TRUE);
register_shutdown_function('shut');
set_error_handler('handler');
//Function to catch no user error handler function errors...
function shut(){
    $error = error_get_last();
    if($error && ($error['type'] & E_FATAL)){
        handler($error['type'], $error['message'], $error['file'], $error['line']);
    }
}
function handler( $errno, $errstr, $errfile, $errline ) {
    switch ($errno){
        case E_ERROR: // 1 //
            $typestr = 'E_ERROR'; break;
        case E_WARNING: // 2 //
            $typestr = 'E_WARNING'; break;
        case E_PARSE: // 4 //
            $typestr = 'E_PARSE'; break;
        case E_NOTICE: // 8 //
            $typestr = 'E_NOTICE'; break;
        case E_CORE_ERROR: // 16 //
            $typestr = 'E_CORE_ERROR'; break;
        case E_CORE_WARNING: // 32 //
            $typestr = 'E_CORE_WARNING'; break;
        case E_COMPILE_ERROR: // 64 //
            $typestr = 'E_COMPILE_ERROR'; break;
        case E_CORE_WARNING: // 128 //
            $typestr = 'E_COMPILE_WARNING'; break;
        case E_USER_ERROR: // 256 //
            $typestr = 'E_USER_ERROR'; break;
        case E_USER_WARNING: // 512 //
            $typestr = 'E_USER_WARNING'; break;
        case E_USER_NOTICE: // 1024 //
            $typestr = 'E_USER_NOTICE'; break;
        case E_STRICT: // 2048 //
            $typestr = 'E_STRICT'; break;
        case E_RECOVERABLE_ERROR: // 4096 //
            $typestr = 'E_RECOVERABLE_ERROR'; break;
        case E_DEPRECATED: // 8192 //
            $typestr = 'E_DEPRECATED'; break;
        case E_USER_DEPRECATED: // 16384 //
            $typestr = 'E_USER_DEPRECATED'; break;
    }
    $message = '<b>'.$typestr.': </b>'.$errstr.' in <b>'.$errfile.'</b> on line <b>'.$errline.'</b><br/>';
    if(($errno & E_FATAL) && ENV === 'production'){
        header('Location: 500.html');
        header('Status: 500 Internal Server Error');
    }
    if(!($errno & ERROR_REPORTING))
        return;
    if(DISPLAY_ERRORS)
        printf('%s', $message);
    //Logging error on php file error log...
    if(LOG_ERRORS)
        error_log(strip_tags($message), 0);
}
Теги: php ошибки error 
 

Модуль "Баннер- Реклама" для Фермы FF

Автор факаРаздел Модули для фф

Ответов: 19
Просмотров: 5617
Последний ответ 30 Апрель 2018, 18:15:01
от arxangel198
Модуль "Блок ссылок" для Фермы FF как на LinkSlot.RU

Автор velas85Раздел Совместные покупки

Ответов: 1
Просмотров: 2449
Последний ответ 16 Февраль 2016, 17:03:11
от kvozimir
Как быстро рассчитать доходность фруктов для своей фермы

Автор Rich-99000000Раздел Разное для фф

Ответов: 3
Просмотров: 653
Последний ответ 13 Апрель 2018, 10:53:58
от tyrew
Бесплатно скрипт фермы Asterix and Obelix

Автор dima2010Раздел Скрипты фф

Ответов: 14
Просмотров: 1219
Последний ответ 13 Апрель 2017, 04:09:01
от Hachikom
Дамп уникальной фермы Farm-mania.su

Автор Shop-53Раздел Скрипты фф

Ответов: 18
Просмотров: 2110
Последний ответ 27 Май 2017, 22:02:01
от shans5
Имя пользователя:
Пароль:
Session: