5 erreurs fatales en PHP : checklist pour débutants

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Introduction : pourquoi certains abandonnent PHP et d'autres en vivent

\n\n

Vous avez décidé d'apprendre PHP. Excellent choix ! Ce langage fait tourner 78% des sites web dans le monde — des simples blogs aux géants comme Facebook (enfin, presque). Mais il y a un hic : de nombreux débutants tombent dans les mêmes pièges, transformant l'apprentissage en calvaire.

\n\n

Pourquoi ? PHP est un langage sournois. Il pardonne les erreurs stupides, mais pas l'ignorance des principes fondamentaux. Vous écrivez du code, ça marche, le site se charge — et vous pensez que tout va bien. Mais un mois plus tard, vous êtes noyé dans 500 lignes de code incompréhensible, et votre site se fait pirater en 5 minutes.

\n\n

Dans cet article, je décortique les 5 erreurs les plus fréquentes en PHP que commettent les débutants. Je vous montre du code réel, j'explique pourquoi c'est problématique, et je donne des solutions concrètes. Si vous vous reconnaissez dans un seul point — pas de panique, c'est normal. Corrigez-le, tout simplement.

\n\n

Erreur n°1 : Mélanger PHP et HTML sans structure

\n\n

Un grand classique. Le débutant écrit quelque chose comme :

\n\n
<?php\n$username = "Jean";\necho "<html><body><h1>Bonjour, " . $username . " !</h1>";\n?>\n<p>Ce texte est après le PHP</p>\n<?php\necho "</body></html>";\n?>
\n\n

Ça fonctionne, certes. Mais essayez d'ajouter une boucle, une condition, dix pages — et vous vous noyez dans un mélange de balises et de echo. Un tel code est impossible à lire, maintenir et déboguer.

\n\n

Pourquoi c'est mauvais ?

\n
    \n
  • Violation du principe de séparation des responsabilités (MVC).
  • \n
  • Au moindre changement de design, vous réécrivez la moitié de la logique.
  • \n
  • Les éditeurs de code deviennent fous avec les balises mélangées.
  • \n
\n\n

La bonne pratique ?

\n

Utilisez un système de templates. Même sans framework, vous pouvez séparer la logique de l'affichage :

\n\n
<?php\n// logic.php\n$data = ['name' => 'Jean', 'age' => 25];\ninclude 'template.php';\n?>\n\n<!-- template.php -->\n<!DOCTYPE html>\n<html>\n<body>\n    <h1><?= htmlspecialchars($data['name']) ?></h1>\n    <p>Âge : <?= $data['age'] ?> ans</p>\n</body>\n</html>
\n\n

Remarquez : j'utilise la balise courte <?= et la fonction htmlspecialchars() — c'est déjà une protection contre les failles XSS. Les erreurs en PHP sont souvent liées à l'ignorance de la sécurité.

\n\n

Erreur n°2 : Ignorer les injections SQL (la plus dangereuse)

\n\n

En 2025, écrire ce genre de code est une faute grave :

\n\n
$id = $_GET['id'];\n$query = "SELECT * FROM users WHERE id = $id";\n$result = mysqli_query($conn, $query);
\n\n

Si vous passez dans l'URL ?id=1 OR 1=1, vous récupérez tous les utilisateurs. Si vous passez ?id=1; DROP TABLE users — adieu la base. C'est une injection SQL, et c'est la première chose que les hackers testent.

\n\n

Comment corriger ?

\n

Utilisez les requêtes préparées (prepared statements). Voici comment faire en PHP moderne avec PDO :

\n\n
$pdo = new PDO('mysql:host=localhost;dbname=test', 'root', '');\n$stmt = $pdo->prepare('SELECT * FROM users WHERE id = :id');\n$stmt->execute(['id' => $_GET['id']]);\n$user = $stmt->fetch();
\n\n

La base de données échappe automatiquement la valeur. L'injection devient impossible. Retenez bien : ne jamais insérer directement des données utilisateur dans une requête SQL. C'est l'une des principales erreurs PHP débutant qui peut vous coûter votre site.

\n\n

Erreur n°3 : Utiliser des fonctions et styles obsolètes

\n\n

Internet regorge de tutoriels de 2010 qui enseignent :

\n
    \n
  • mysql_connect() — supprimé en PHP 7.0.
  • \n
  • ereg() au lieu de preg_match().
  • \n
  • split() au lieu de explode().
  • \n
  • Fermer la balise ?> à la fin d'un fichier PHP pur.
  • \n
\n\n

Pourquoi c'est mauvais ? Parce que

Blogs

Book Recommendations