Skip to content

im-tomasz/blog

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Blog en PHP

Description

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.


Stack technique

  • 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

Structure et composants principaux

  • 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.

Compétences mises en jeu

  • 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)

Exemples de code pertinents

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.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages