Instructions pour réaliser le TP



Pour ce TP comme pour le précédent, nous allons nous préparer ensemble en passant en revue les points suivants :

  • prérequis ;
  • objectifs ;
  • structure de la table MySQL ;
  • structure des pages PHP.


Prérequis

Dans ce TP, nous allons nous concentrer sur la base de données. Nous aurons besoin des notions suivantes :

  • lire dans une table ;
  • utilisation de PDO et des requêtes préparées ;
  • utilisation de fonctions SQL ;
  • manipulation des dates en SQL.


Objectifs

Commençons par définir ce qu'on veut arriver à faire. Un système de blog avec des commentaires, oui, mais encore ? Il faut savoir jusqu'où on veut aller, ce qu'on a l'intention de réaliser et ce qu'on va laisser de côté.

Si on est trop ambitieux, on risque de le regretter : on pourrait en effet y passer des jours et ce TP deviendrait long, complexe et fastidieux. Je vous propose donc de réaliser l'affichage de base d'un blog et des commentaires associés aux billets, et je vous inviterai par la suite à l'améliorer pour créer l'interface de gestion des billets et d'ajout de commentaires.

L'ajout de billets et de commentaires n'est donc pas au programme de ce TP, ce qui va nous permettre de nous concentrer sur l'affichage de ces derniers.


Les pages à développer

Il y aura deux pages à réaliser :

  • index.php : liste des cinq derniers billets ;
  • commentaires.php : affichage d'un billet et de ses commentaires.

Voici, en figure suivante, à quoi devrait ressembler la liste des derniers billets (index.php).



Liste des billets



Et en figure suivante, à quoi devrait ressembler l'affichage d'un billet et de ses commentaires (commentaires.php).



Liste des commentaires



Comme vous pouvez le constater, l'affichage est minimaliste. Le but n'est pas de réaliser le design de ce blog mais bel et bien d'obtenir quelque chose de fonctionnel.

Le CSS

Voici le fichier CSS (très simple) que j'utiliserai pour ce TP :

h1, h3

{

    text-align:center;

}

h3

{

    background-color:black;

    color:white;

    font-size:0.9em;

    margin-bottom:0px;

}

.news p

{

    background-color:#CCCCCC;

    margin-top:0px;

}

.news

{

    width:70%;

    margin:auto;

}

 

a

{

    text-decoration: none;

    color: blue;

}

Libre à vous de l'utiliser ou non, de le modifier ; bref, faites-en ce que vous voulez. ;-)


Structure des tables MySQL

Eh oui, cette fois nous allons travailler avec non pas une mais deux tables :

  • billets : liste des billets du blog ;
  • commentaires : liste des commentaires du blog pour chaque billet.

On va vraiment stocker tous les commentaires dans une seule table, même s'ils concernent des billets différents ?


Oui. C'est la bonne façon de faire. Tous les commentaires, quel que soit le billet auquel ils se rapportent, seront stockés dans la même table. On pourra faire le tri facilement à l'aide d'un champ id_billet qui indiquera pour chaque commentaire le numéro du billet associé.


Voici la structure que je propose pour la table billets :

  • id (int) : identifiant du billet, clé primaire et auto_increment ;
  • titre (varchar 255) : titre du billet ;
  • contenu (text) : contenu du billet ;
  • date_creation (datetime) : date et heure de création du billet.


De même, voici la structure que l'on va utiliser pour la table commentaires :

  • id (int) : identifiant du commentaire, clé primaire et auto_increment ;
  • id_billet (int) : identifiant du billet auquel correspond ce commentaire ;
  • auteur (varchar 255) : auteur du commentaire ;
  • commentaire (text) : contenu du commentaire ;
  • date_commentaire (datetime) : date et heure auxquelles le commentaire a été posté.


C'est vraiment la base. Vous pouvez ajouter d'autres champs si vous le désirez. Par exemple, on n'a pas défini de champ auteur pour les billets.

Notez qu'il est possible d'ajouter des champs à tout moment, comme nous l'avons vu il y a peu. L'interface phpMyAdmin propose des options pour cela.

Comme nous n'allons pas créer les formulaires d'ajout de billets et de commentaires dans un premier temps, je vous conseille de remplir vous-mêmes les tables à l'aide de phpMyAdmin après les avoir créées.

Si vous êtes du genre flemmards, vous pouvez aussi télécharger mes tables toutes prêtes avec quelques données à l'intérieur, mais je vous recommande de vous entraîner à les créer vous-mêmes.


Structure des pages PHP


Étant donné que nous nous concentrons sur l'affichage, la structure des pages reste très simple, comme l'atteste la figure suivante.



Structure des pages du blog



Le visiteur arrive d'abord sur l'index où sont affichés les derniers billets. S'il choisit d'afficher les commentaires de l'un d'eux, il charge la page commentaires.php qui affichera le billet sélectionné ainsi que tous ses commentaires. Bien entendu, il faudra envoyer un paramètre à la page commentaires.php pour qu'elle sache quoi afficher… je vous laisse deviner lequel.

Il sera possible de revenir à la liste des billets depuis les commentaires à l'aide d'un lien de retour.


À vous de jouer !

Je vous en ai assez dit : la réalisation de ce TP devrait être relativement simple pour vous si vous avez bien suivi jusqu'ici.

N'oubliez pas les éléments essentiels de sécurité, notamment la protection de tous les textes par htmlspecialchars(). Et ne faites jamais confiance à l'utilisateur !

Créé avec HelpNDoc Personal Edition: Environnement de création d'aide complet