L'exercice consiste à écrire des scripts php selon l'architecture suivante :

index.php

  • assets
    • bootstrap
  • pages
    • accueil.php
    • index.php
    • menus.php
    • plats.php
  • src
    index.php
    • cantine
      • index.php
      • menu.php
      • plats.php
    • core
      • index.php
      • router.php
    • datas
      • index.php
      • plats.php
  • template
    • footer.php
    • head.php
    • header.php
    • index.php
... pour obtenir les 3 pages suivantes :
accueilmenuplats

Etape 1 : Compréhension de la fonction header()

Sachant que tous les fichiers "index.php" comportent le code suivant :

header('location: http://'.$_SERVER['SERVER_NAME'].'/template/index.php');

A quoi servent ces fichiers "index.php" ?

Etape 2 : utilisation de include ou require

Après avoir récupéré les fichiers sur github (https://github.com/yvandouenel/Diginamic2023-M01DevWeb/tree/main/php/ExoTemplateRouter), compléter les différents scripts php afin d'obtenir un site de 3 pages tel qu'affiché dans les images ci-dessus.

Etape 3 : Lecture de fichier

Ajouter un fichier plats.csv dont voici un exemple : 

entrée;Oeuf mayo
entrée;Carottes râpées
entrée;Taboulé
plat;Burger
entrée;Test
dessert;Flan
plat;"Steack frites"
plat;Daube
dessert;Religieuse
entrée;"Pot au feu"
plat;Lasagnes

Modifier vos scripts php afin d'assigner le tableau $tab  grâce à la lecture du fichier plats.csv

Etape 4 : Formulaire et ajout dans un fichier

Créer un formulaire qui vous permet d'ajouter un plat dans une des catégories (entrée, plat, dessert).

url index.php?page=admin&categorie=plat&action=add

Etape 5 :  Formulaire et ré-écriture d'un fichier (suppression)

Créer un formulaire qui vous permet de supprimer un plat dans une des catégories (entrée, plat, dessert)

url index.php/admin?categorie=plat&plat=1&action=delete

Etape 6 : Formulaire et ré-écriture d'un fichier (modification)

Créer un formulaire qui vous permet de modifier un plat dans une des catégories (entrée, plat, dessert)

url index.php/admin?categorie=plat&plat=1&action=update

Etape 7 : Ajouter des contrôles d'accès

En utilisant le mécanisme des sessions  faites en sorte que seul les personnes qui sont référencées dans le fichier /src/datas/users.csv soient autorisées à voir les pages qui commencent par index.php/admin. Pour ce faire, vous finirez de créer le fichier security.php. Attention, les mots de passe doivent être générés avec la fonction crypt à partir de mot de passe et du login qui sert ici de "salt". Ex :

$hashed_password = crypt('mypassword','login');