Top 10 błędów w PHP, które popełnia każdy początkujący

Piszesz kod. Odświeżasz stronę. Widzisz biały, pusty ekran.

Dzieje się tak, ponieważ PHP domyślnie nie zgłasza błędów w sposób widoczny. Musisz wymusić wyświetlanie błędów podczas pracy nad projektem.

Dodaj te linie na początku swoich plików:

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

Nie używaj tego na produkcji. Zamiast tego korzystaj z logów plików.

Oto 10 powszechnych błędów i sposoby na ich naprawę:

  • Brakujące średniki PHP przestaje działać, jeśli zapomnisz o średniku. Często powoduje to ciche zatrzymanie skryptu. Naprawa: Upewnij się, że każda instrukcja kończy się średnikiem.

  • Słabe porównywanie (== vs ===) Podwójny znak równości wykonuje rzutowanie typów. Prowadzi to do błędów logicznych. Naprawa: Używaj potrójnego znaku równości (===). Sprawdza on zarówno wartość, jak i typ.

  • Niezdefiniowane zmienne Użycie zmiennej przed jej przypisaniem psuje logikę programu. Naprawa: Użyj operatora null coalescing. Przykład: $name = $_GET['name'] ?? 'Guest';

  • Zakres zmiennych globalnych Funkcje nie widzą zmiennych znajdujących się poza nimi. Naprawa: Przekazuj zmienne do funkcji jako parametry.

  • SQL Injection Budowanie zapytań z wykorzystaniem danych od użytkownika pozwala hakerom na kradzież danych. Naprawa: Używaj zapytań przygotowanych (prepared statements) z użyciem placeholderów (?).

  • Cross-Site Scripting (XSS) Bezpośrednie wypisywanie danych od użytkownika pozwala na uruchamianie złośliwych skryptów w przeglądarkach. Naprawa: Użyj funkcji htmlspecialchars(), aby zabezpieczyć dane wyjściowe.

  • Nagłówki zostały już wysłane Nie możesz przekierować użytkownika, jeśli wysłałeś już tekst do przeglądarki. Nawet pojedyncza spacja może spowodować ten błąd. Naprawa: Umieść wywołania header() na samym początku. Zawsze używaj exit() po przekierowaniu.

  • Niezdefiniowane klucze tablicy Próba dostępu do klucza formularza, który nie istnieje, powoduje ostrzeżenia. Naprawa: Używaj operatora null coalescing dla wszystkich danych $_POST i $_GET.

  • Include vs Require include wyświetla jedynie ostrzeżenie, jeśli brakuje pliku. Skrypt kontynuuje działanie i ulega awarii później. Naprawa: Używaj require_once dla krytycznych plików, takich jak połączenia z bazą danych.

  • Niezweryfikowane wartości zwracane Wiele funkcji PHP zwraca false w przypadku błędu. Jeśli natychmiast użyjesz tego wyniku, otrzymasz kolejne błędy. Naprawa: Sprawdź, czy wynik nie jest wartością false, zanim go użyjesz.

Podsumowanie dla sukcesu:

  • Włącz raportowanie błędów w środowisku deweloperskim.
  • Używaj === do wszystkich porównań.
  • Sanityzuj wszystkie dane wejściowe od użytkowników.
  • Sprawdzaj wartości zwracane.

Źródło: https://dev.to/bikkisingh/top-10-php-bugs-every-beginner-makes-and-how-to-fix-them-1anh