Exercice PHP – Cours 12 (2026)

L’objectif de l’exercice est de développer une application de type “Fil de nouvelle” (Ex. Facebook). Celle-ci offre deux pages: “Créer publication” (Permet de soumettre une publication) et “Voir publication” (Permet de voir la liste des publications déjà créés).

Il y aura également un bouton “Connexion” (Ou “Déconnexion” si vous êtes déjà connecté) qui permettra de s’authentifier. La page “Créer publication” ne sera disponible que si vous êtes connecté.

Créons cette application étape par étape.

Exercice 1

Créez les pages “Nouveau Message” (nouveau_message.php) et “Visualiser Message” (visualiser_message.php). Assurez-vous qu’il soit possible de naviguer entre les pages en utilisant un menu.

Exercice 2

Créé une base de données “examen_final_pratique”. Créez les tables suivantes:

Compte

  • id_compte (int, clé primaire, auto-increment)
  • code_utilisateur (varchar(50))
  • motdepasse (varchar(100))
  • nom (varchar(50))

Message

  • id_message (int,clé primaire, auto-increment)
  • id_compte (int)
  • contenu (text)
  • date (datetime)

Ajouter les entrées suivantes pour fin de test:
Compte

  • “test1”, “motdepasse1”, “Alexandre”
  • “test2”, “motdepasse2”, “Roger”

Message

  • 1, “Il fera froid demain, prévoir de bonne bottes!”, “2025-11-12 12:34:11”
  • 1, “Congestion sur l’autoroute. Prévoir un ralentissement”, “2025-11-12 12:34:11”
  • 2, “Encore de la pluie”, “2019-11-12 12:34:11”
  • 2, “N’oublier pas de vous faire vacciner pour la grippe”, “2025-11-12 12:34:11”.

Exercice 3

Ajouter un mécanisme d’authentification à l’application. Pour se faire, ajouter une section “Connexion” au menu qui affiche une page d’authentification (Code utilisateur et mot de passe). Si une combinaison valide de code utilisateur et mot de passe est soumise, une session sera créée pour se rappeler que l’utilisateur a été authentifié correctement. Un bouton de déconnexion prendra la place du bouton de connexion. Assurez-vous également que la page “Nouvelle publication” n’est accessible uniquement qu’aux utilisateurs connectés.

Exercice 4

Dans la page “visualiser_messages.php”, afficher un tableau à une seule colonne qui contient tous les messages en indiquant:

  • Le nom de son rédacteur
  • La date et l’heure de la publication.
  • Le texte (contenu) de la publication.

Exercice 5

Dans la page “nouveau_message.php”, offrez un formulaire permettant d’ajouter un nouveau message dans la base de données. Une fois l’ajout effectué, affichez la page “Visualiser Message”

Exercice 6

Dans la page “nouveau_message.php”, ajouter une validation afin de faire respecter les règles suivantes:

  • Si le message contient une adresse courriel ou un numéro de téléphone, refuser la soumission et affichez un message d’erreur.
  • Les formats de téléphone devant être détectés sont les suivants:
    • (XXX) XXX-XXXX
    • (XXX)XXX-XXXX
    • XXXXXXXXXX
    • XXX-XXX-XXXX

Chaque X représente une chiffre.

Exercice 7

Créez un fichier bd.ini qui contient les informations de connexion à la base de donnée (Serveur de base de donnée, nom de la base de donnée, code utilisateur, mot de passe). Charger les informations à partir de ce fichier dans toutes les pages qui utilisent la base de donnée et utiliser les valeurs obtenu pour établir la connexion.

Exercice 9

Assurez-vous que l’application soit bien protégée contre les injections SQL

Exercice 8

Assurez-vous que l’application soit bien protégée contre le XSS

Exercice 10

Assurez-vous que chaque tentative de connexion soit journalisée dans un fichier “connexion.log” (Ex. “L’utilisateur test1 a tenté de se connecter”) .

Lorsque ces messages sont journalisé, il doivent également inclure la date et l’heure ou l’événement s’est produit.