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żywajexit()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
$_POSTi$_GET.Include vs Require
includewyświetla jedynie ostrzeżenie, jeśli brakuje pliku. Skrypt kontynuuje działanie i ulega awarii później. Naprawa: Używajrequire_oncedla krytycznych plików, takich jak połączenia z bazą danych.Niezweryfikowane wartości zwracane Wiele funkcji PHP zwraca
falsew 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