Les 10 erreurs PHP les plus courantes chez les débutants
Vous écrivez du code. Vous actualisez la page. Vous voyez un écran blanc vide.
Cela arrive parce que PHP échoue silencieusement par défaut. Vous devez le forcer à afficher les erreurs pendant le développement.
Ajoutez ces lignes au sommet de vos fichiers :
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
N'utilisez pas cela en production. Utilisez plutôt des fichiers de logs.
Voici 10 erreurs courantes et comment les corriger :
Point-virgule manquant PHP s'arrête de fonctionner si vous oubliez un point-virgule. Cela provoque souvent un plantage silencieux. Correction : Assurez-vous que chaque instruction se termine par un point-virgule.
Comparaison faible (== vs ===) Le signe égal double effectue une conversion de type (coercion). Cela entraîne des erreurs de logique. Correction : Utilisez le triple égal (===). Il vérifie à la fois la valeur et le type.
Variables non définies Utiliser une variable avant de lui assigner une valeur casse votre logique. Correction : Utilisez l'opérateur de fusion null (null coalescing operator). Exemple :
$name = $_GET['name'] ?? 'Guest';Portée des variables globales Les fonctions ne peuvent pas voir les variables situées en dehors d'elles. Correction : Passez les variables aux fonctions en tant que paramètres.
Injection SQL Construire des requêtes avec des entrées utilisateur permet aux pirates de voler des données. Correction : Utilisez des requêtes préparées avec des marqueurs de position (?).
Cross-Site Scripting (XSS) Afficher directement les entrées utilisateur permet à des scripts malveillants de s'exécuter dans les navigateurs. Correction : Enveloppez la sortie dans
htmlspecialchars().En-têtes déjà envoyés (Headers Already Sent) Vous ne pouvez pas rediriger un utilisateur si vous avez déjà envoyé du texte au navigateur. Même un seul espace provoque cette erreur. Correction : Placez les appels
header()tout en haut. Utilisez toujoursexit()après une redirection.Clés de tableau non définies L'accès à une clé de formulaire qui n'existe pas provoque des avertissements. Correction : Utilisez l'opérateur de fusion null pour toutes les données
$_POSTet$_GET.Include vs Require
includeaffiche seulement un avertissement si un fichier est manquant. Le script continue de s'exécuter et plante plus tard. Correction : Utilisezrequire_oncepour les fichiers critiques comme les connexions à la base de données.Valeurs de retour non vérifiées De nombreuses fonctions PHP renvoient
falseen cas d'échec. Si vous utilisez ce résultat immédiatement, vous obtiendrez d'autres erreurs. Correction : Vérifiez si le résultat estfalseavant de l'utiliser.
Résumé pour réussir :
- Activez le rapport d'erreurs en développement.
- Utilisez
===pour toutes les comparaisons. - Nettoyez (sanitize) toutes les entrées utilisateur.
- Vérifiez les valeurs de retour.
Source : https://dev.to/bikkisingh/top-10-php-bugs-every-beginner-makes-and-how-to-fix-them-1anh