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
- cantine
- template
- footer.php
- head.php
- header.php
- index.php



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');