Топ 10 PHP-помилок, які припускається кожен початківець

Ви пишете код. Ви оновлюєте сторінку. Ви бачите порожній білий екран.

Це стається тому, що за замовчуванням PHP видає помилки «тихо». Якщо ви не бачите помилок, ви не зможете їх виправити.

Почніть розробку з додавання цих рядків на початок вашого файлу:

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

Це змушує PHP показувати вам, що саме не так. Не використовуйте це в робочому середовищі (production).

Ось 10 поширених помилок та способи їх виправлення.

  1. Відсутність крапки з комою PHP потребує крапку з комою для завершення інструкції. Якщо ви її пропустите, скрипт зупиниться. Виправлення: Завжди завершуйте рядки крапкою з комою.

  2. Несуворе порівняння Оператор == змінює типи перед порівнянням. Це призводить до неправильних результатів. Виправлення: Використовуйте ===. Це перевіряє і значення, і тип.

  3. Невизначені змінні Використання змінної, яку ви не створили, спричиняє логічні помилки. Виправлення: Використовуйте оператор об'єднання з null (null coalescing operator). $name = $_GET['name'] ?? 'Guest';

  4. Область видимості глобальних змінних Функції не бачать змінні поза ними. Виправлення: Передавайте змінні у функції як параметри.

  5. SQL-ін'єкція Введення даних користувача безпосередньо в запит є небезпечним. Зловмисники можуть викрасти ваші дані. Виправлення: Використовуйте підготовлені запити (prepared statements) із плейсхолдерами.

  6. Міжсайтовий скриптинг (XSS) Виведення необроблених даних користувача на екран дозволяє шкідливим скриптам виконуватися в браузерах. Виправлення: Використовуйте htmlspecialchars() для всього виводу.

  7. Помилки заголовків Ви не можете надсилати заголовок після того, як надіслали будь-який текст або пробіли в браузер. Виправлення: Розміщуйте виклики header() на самому початку. Завжди використовуйте exit() після перенаправлення (redirect).

  8. Відсутні ключі форми Звернення до ключа форми, якого не існує, спричиняє помилки. Виправлення: Використовуйте оператор об'єднання з null, щоб надати значення за замовчуванням.

  9. Include проти Require Команда include лише видає попередження, якщо файл відсутній. Скрипт продовжує працювати і згодом аварійно завершується. Виправлення: Використовуйте require_once для критично важливих файлів, таких як підключення до бази даних.

  10. Неперевірені значення, що повертаються Багато функцій PHP повертають false у разі невдачі. Використання цього значення false на наступному кроці призводить до збою. Виправлення: Перевіряйте, чи повернула функція false, перш ніж використовувати результат.

Підсумок для кращого коду: • Увімкніть звітування про помилки під час розробки. • Використовуйте === замість ==. • Перевіряйте значення, що повертаються. • Очищуйте (sanitize) усі вхідні дані користувача.

Джерело: https://dev.to/bikkisingh/top-10-php-bugs-every-beginner-makes-and-how-to-fix-them-1anh