Ce projet est un blog développé pour apprendre à maîtriser PHP, comprendre la création et l’utilisation de bases de données, et mettre en place des fonctionnalités comme les requêtes AJAX pour gérer les commentaires en direct.
Il s’agit d’un support pédagogique qui permet de se familiariser avec la logique d’un site web dynamique, de la construction du back-end à l’interaction côté utilisateur.
- PHP : Gestion du back-end, logique métier, interactions avec la base de données
- MySQL : Stockage des articles, utilisateurs, commentaires
- CSS : Mise en forme des pages
- JavaScript : Dynamique de la page et requêtes AJAX pour les commentaires
- index.php : Page d’accueil affichant un aperçu des articles.
- article.php : Affichage détaillé d’un article avec les commentaires associés et le formulaire de commentaire.
- admin/ : Interface d’administration pour ajouter, modifier ou supprimer des articles.
- includes/ : Fonctions et fichiers partagés (connexion à la base, gestion des erreurs, etc).
- js/commentaires.js : Gère l’envoi des commentaires en AJAX, pour un affichage sans rechargement de page.
- Connexion et manipulation d’une base de données MySQL depuis PHP
- Création et utilisation de fonctions PHP réutilisables
- Rédaction de requêtes SQL (SELECT, INSERT, UPDATE, DELETE)
- Structure MVC simplifiée (séparation logique-affichage)
- Utilisation d’appels AJAX pour une expérience utilisateur fluide
- Sécurisation des entrées utilisateurs (prévention injection SQL, XSS, etc)
1. Connexion à la base de données (extrait de includes/db.php)
<?php
try {
$pdo = new PDO('mysql:host=localhost;dbname=blog', 'root', '');
} catch (PDOException $e) {
die('Erreur : ' . $e->getMessage());
}
?>Ce code est essentiel, tout le site repose sur cette connexion pour récupérer ou modifier les données.
2. Affichage d’un article et récupération de ses commentaires (article.php)
<?php
// Récupère l'article par son ID
$stmt = $pdo->prepare("SELECT * FROM articles WHERE id = ?");
$stmt->execute([$_GET['id']]);
$article = $stmt->fetch();
// Récupère les commentaires associés
$stmt = $pdo->prepare("SELECT * FROM comments WHERE article_id = ? ORDER BY created_at DESC");
$stmt->execute([$_GET['id']]);
$comments = $stmt->fetchAll();
?>Cet extrait montre la logique de récupération des données principales, base du fonctionnement d’un blog.
3. Envoi d’un commentaire via AJAX (js/commentaires.js)
fetch('add_comment.php', {
method: 'POST',
headers:{ 'Content-Type':'application/json' },
body: JSON.stringify({ article_id: id, contenu: message })
})
.then(response => response.json())
.then(data => {
if(data.success) {
// Ajoute le commentaire sur la page sans rechargement
}
});Ici, le code permet d’envoyer des commentaires de façon transparente.