PHP

Проверка PHP-кода на ошибки: синтаксис, запуск, логи и HTTP-коды

Короткий ответ: PHP-код проверяют в несколько этапов. Сначала синтаксис командой php -l, затем запуском файла, затем выводом ошибок в учебной среде, затем логами сервера. Если речь о веб-странице, дополнительно смотрят HTTP-код: 200, 302, 404, 500 и другие ответы

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

Проверка синтаксиса

php -l index.php

Эта команда ищет синтаксические ошибки: пропущенные скобки, кавычки, точки с запятой, неверные конструкции

Пример ошибки

<?php

echo "Привет"

Проверка покажет проблему в файле. Но если синтаксис правильный, команда не проверит подключение к базе, существование файлов или правильность результата

Включение ошибок в учебной среде

Для локальной разработки можно временно включить вывод ошибок

<?php

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

На рабочем сайте лучше не показывать ошибки посетителям. Там ошибки должны уходить в лог

Где смотреть логи

Логи зависят от окружения

Open Server: панель и папка логов окружения
XAMPP: apache/logs/error.log
Linux Apache: /var/log/apache2/error.log
Nginx: /var/log/nginx/error.log
PHP-FPM: отдельный лог пула или сервиса
Хостинг: раздел логов в панели

Если сайт показывает белую страницу, лог часто быстрее всего приводит к реальной причине

Проверка HTTP-кода

Если страница открывается в браузере, посмотрите код ответа. В терминале можно использовать

curl -I https://example.com/page.php

Типовые коды

200 — страница отдала ответ
301/302 — редирект
403 — доступ запрещен
404 — страница не найдена
500 — ошибка сервера

HTTP-код не заменяет PHP-логи, но помогает понять, что именно видит браузер

Проверка входных данных

Многие ошибки появляются не при загрузке файла, а при конкретных данных формы

<?php

var_dump($_POST);

Для учебной отладки var_dump() полезен. В рабочем проекте лучше писать аккуратные логи и не выводить персональные данные на экран

Проверка подключенных файлов

Если ошибка связана с require или include, используйте абсолютные пути через __DIR__

<?php

require __DIR__ . '/config.php';

Относительные пути часто ломаются, если файл запускается из другой директории

Мини-практика

Создайте файл с намеренной ошибкой: пропустите точку с запятой, запустите php -l, исправьте ошибку, затем добавьте обращение к несуществующему ключу массива и включите error_reporting(E_ALL)

Так вы увидите разницу между синтаксической ошибкой и предупреждением во время выполнения

Частые ошибки

Проверяют только php -l и думают, что код полностью исправен

Включают display_errors на рабочем сайте

Не смотрят логи сервера

Игнорируют HTTP-код ответа

Не проверяют входные данные $_POST, $_GET, $_FILES

Используют относительные пути и ловят ошибку подключения файла

Не различают warning, notice, fatal error и исключение

Что почитать дальше по PHP

Если нужен общий маршрут по теме, откройте рубрику PHP. Для соседних задач пригодятся эти разборы:

Подписаться
Уведомить о
guest
0 комментариев
Старые
Новые Популярные

Настройки cookie

0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x