Skip to content
Snippets Groups Projects
Commit f537b87d authored by Gabriel Frey's avatar Gabriel Frey
Browse files

Ajout sujet TP2

parent cd1db467
Branches
No related merge requests found
TP2.md 0 → 100644
TP2 - Gestion de comptes utilisateur
====================================
Créez dans votre clone Git un répertoire `TP2` contenant les 5 fichiers vides
suivants :
- `signin.php`
- `authenticate.php`
- `welcome.php`
- `signout.php`
- `users.php`
Objectifs
----------
L'objectif des exercices suivants est de compléter ces 4 fichiers pour
mettre en place un mécanisme d'authentifications d'utilisateurs. Ils
serviront de base pour les TPs suivants.
Pour tous les exercices du TP :
- pensez à vérifier et sécuriser les variables que l'utilisateur peut modifier
- envisagez tous les cas de figures possibles pour accéder à vos pages
- n'oubliez pas de commiter/pusher votre travail sur le dépôt Git !
Exercice 1 : Formulaire de connexion
------------------------------------
Complétez le fichier PHP `signin.php` qui affiche un document HTML avec
un formulaire proposant de s'authentifier à l'aide d'un nom d'utilisateur et
d'un mot de passe.
Recommandations :
- choisissez des champs de formulaires appropriés aux éléments attendus
- assurez-vous que le formulaire ne soit proposé que si la requête HTTP utilise
la méthode GET (voir `$_SERVER`).
Exercice 2 : Authentification
-----------------------------
Complétez le script PHP `authenticate.php` qui traite la requête HTTP POST du
formulaire `signin.php` comme suit :
1. Il s'assure que la requête HTTP utilise la méthode POST. Si ce n'est pas le
cas, demande une redirection vers le fichier `signin.php`.
1. Il inclut le fichier `users.php` qui contient uniquement un tableau `$users`
associant un nom d'utilisateur à son mot de passe.
2. Il vérifie que le tableau `$users` contient le nom d'utilisateur entré dans
le formulaire et que les mots de passe sont identiques.
3. Si l'authentification est réussie :
- une session est créée
- le nom d'utilisateur est sauvegardé dans le tableau de session
- une demande de redirection vers le fichier `welcome.php` est envoyée
4. Si l'authentification échoue, une demande de redirection vers le fichier
`signin.php` est envoyée.
Exercice 3 : Mon compte
-----------------------
Complétez le fichier PHP `welcome.php` pour qu'il se comporte ainsi :
1. Si l'utilisateur ne s'est pas encore authentifié, une demande de redirection
vers le fichier `signin.php` est envoyée.
2. Si l'utilisateur est authentifié, ce fichier lui propose un contenu HTML
comportant un message de bienvenue personnalisé ainsi qu'un lien de déconnexion
vers le fichier PHP `signout.php`
Exercice 4 : Déconnexion
------------------------
Complétez le fichier PHP `signout.php` pour qu'il effectue les opérations
suivantes :
1. Effacer l'identité de l'utilisateur connecté de la session courante
2. Envoyer une demande de redirection vers le fichier `signin.php`
Note : Ce fichier doit uniquement contenir 3 instructions.
Exercice 5 : Messages d'erreur du serveur vers le client
--------------------------------------------------------
Cet exercice propose de mettre en place un système de messages affichés sur la
page `signin.php` pour indiquer à l'utilisateur le problème rencontré par le
module PHP.
1. Dans le fichier `signin.php`, ajoutez une balise `div` ayant `message` comme
attribut `class`. Dans ce balise, affichez le contenu de la variable de session
`message` si elle existe et n'est pas vide.
2. Dans le fichier `authenticate.php`, mettez à jour la variable de session
`message` en fonction des différents problèmes rencontrés lors de la tentative
d'authentification :
- lorsque le nom d'utilisateur n'existe pas
- lorsque le mot de passe est incorrect
Pour les plus rapides
---------------------
Lors du TP suivant, il vous sera demandé de mettre en place la gestion des utilisateurs par l'utilisation d'une base de données.
Mise en place de la BDD
------------------------------------
1. Créer une nouvelle base de données `PWeb` à partir de
[la documentation unistra](https://documentation.unistra.fr/Catalogue/Services_pedagogiques/Salles/Ressources/MAI_VIE/co/BdD.html)
2. Créer une table `Users` permettant de stocker les logins et mot de passe des
utilisateurs. Réfléchissez bien aux champs et attributs des champs :
auto-increment, unique, etc.
3. Ajouter manuellement un ou plusieurs utilisateurs
Exercice 2 : Authentification
-----------------------------
1. Créez un nouveau fichier `bdd.php` contenant 3 constantes correspondant aux
3 paramètres de la construction d'un objet PDO (voir cours)
2. Modifiez le fichier `authenticate.php` pour qu'il authentifie les
utilisateurs à partir de la BDD en utilisant PDO. Ceci remplace l'utilisation
du fichier `users.php` des exercices précédents.
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment