𝗧𝗼𝗽 𝟭𝟬 𝗣𝗛𝗣-𝗕𝘂𝗴𝘀 𝗗𝗶𝗲 𝗘𝗹𝗸𝗲 𝗕𝗲𝗴𝗶𝗻𝗻𝗲𝗿 𝗠𝗮𝗮𝗸𝘁
Je schrijft code. Je ververst de pagina. Je ziet een leeg wit scherm.
Dit gebeurt omdat PHP standaard fouten stilzwijgend negeert. Als je geen foutmeldingen ziet, kun je ze ook niet oplossen.
Begin je ontwikkeling door deze regels bovenaan je bestand toe te voegen:
ini_set('display_errors', 1); ini_set('display_startup_errors', 1); error_reporting(E_ALL);
Dit dwingt PHP om te laten zien wat er mis is. Gebruik dit niet in een productieomgeving.
Hier zijn 10 veelvoorkomende bugs en hoe je ze oplost.
Ontbrekende puntkomma's PHP heeft een puntkomma nodig om een instructie af te sluiten. Als je er een vergeet, stopt het script. Oplossing: Sluit je regels altijd af met een puntkomma.
Zwakke vergelijking (Loose Comparison) De == operator verandert types voordat hij vergelijkt. Dit leidt tot onjuiste resultaten. Oplossing: Gebruik ===. Hiermee controleer je zowel de waarde als het type.
Niet-gedefinieerde variabelen Het gebruik van een variabele die je niet hebt aangemaakt, veroorzaakt logische fouten. Oplossing: Gebruik de null coalescing operator. $name = $_GET['name'] ?? 'Guest';
Scope van globale variabelen Functies kunnen variabelen buiten hun eigen scope niet zien. Oplossing: Geef variabelen door aan functies als parameters.
SQL-injectie Het direct in een query plaatsen van gebruikersinvoer is gevaarlijk. Aanvallers kunnen je gegevens stelen. Oplossing: Gebruik prepared statements met placeholders.
Cross-Site Scripting (XSS) Het direct naar het scherm printen van onbewerkte gebruikersinvoer zorgt ervoor dat kwaadaardige scripts in browsers kunnen worden uitgevoerd. Oplossing: Gebruik htmlspecialchars() op alle output.
Header-fouten Je kunt geen header meer versturen nadat je tekst of spaties naar de browser hebt gestuurd. Oplossing: Plaats header() aanroepen helemaal bovenaan. Gebruik altijd exit() na een redirect.
Ontbrekende formulier-keys Het benaderen van een formulier-key die niet bestaat, veroorzaakt fouten. Oplossing: Gebruik de null coalescing operator om een standaardwaarde op te geven.
Include vs Require Het include-commando geeft alleen een waarschuwing als een bestand ontbreekt. Het script blijft doorgaan en crasht later. Oplossing: Gebruik require_once voor kritieke bestanden zoals databaseverbindingen.
Niet-gecontroleerde retourwaarden Veel PHP-functies retourneren false als ze mislukken. Het gebruik van die false-waarde in de volgende stap veroorzaakt een crash. Oplossing: Controleer of de functie false heeft geretourneerd voordat je het resultaat gebruikt.
Samenvatting voor betere code: • Zet error reporting aan tijdens de ontwikkeling. • Gebruik === in plaats van ==. • Controleer retourwaarden. • Sanitize alle gebruikersinvoer.
Bron: https://dev.to/bikkisingh/top-10-php-bugs-every-beginner-makes-and-how-to-fix-them-1anh