TP2.md 4.1 KB

TP2 - Gestion de comptes utilisateur

Créez 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 progressivement ces fichiers pour mettre en place un mécanisme d'authentifications d'utilisateurs. Attention, ces fichiers serviront de base pour les TPs sur la POO et les BDD.

Pour tous les exercices du TP :

  • vérifiez et sécurisez les variables que l'utilisateur peut modifier
  • envisagez tous les cas de figures possibles (méthodes HTTP) pour accéder à vos pages et neutralisez les cas non désirés
  • n'oubliez pas de commiter/pusher régulièrement votre travail sur le dépôt Git pour vous familiariser avec.

Exercice 1 : Formulaire de connexion

Complétez le fichier PHP signin.php pour affichez un document HTML avec un formulaire proposant de s'authentifier à l'aide d'un login et d'un mot de passe.

Ce fichier ne doit contenir aucun code PHP (pour le moment).

Exercice 2 : Un fichier comme BDD

Pour ce TP, la base de donnée des utilisateurs sera stockée dans le fichier users.php sous la forme d'un tableau associatif $users contenant des couples 'login' => 'mot de passe'.

Créez ce tableau avec quelques utilisateurs de votre imagination.

Exercice 3 : Authentification

Note : ce fichier ne comportera aucun code HTML.

Complétez le script PHP authenticate.php qui traite la requête HTTP POST du formulaire signin.php comme suit :

  1. Il demande une redirection vers le fichier signin.php si la méthode HTTP utilisée n'est pas POST.
  2. Il inclut le fichier users.php.
  3. Il vérifie que le tableau $users contient le login transmis en POST. Regardez la documentation de array_key_exists
  4. Si le login existe, il vérifie que le mot de passe passé en POST correspond au mot de passe du tableau $users.
  5. Si les mots de passe correspondent :
    • une session est créée
    • le login est sauvegardé dans le tableau de session
    • une demande de redirection vers le fichier welcome.php est envoyée
  6. Dans tous les cas d'échec d'authentification, une demande de redirection vers le fichier signin.php est envoyée.

Exercice 4 : 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 5 : Déconnexion

Complétez le fichier PHP signout.php pour qu'il :

  1. efface l'identité de l'utilisateur connecté de la session courante
  2. envoie une demande de redirection vers le fichier signin.php

Note : Ce fichier doit contenir exactement 3 instructions.

Exercice 6 : 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 authenticate.php, créez une variable de session message qui contiendra un texte relatif aux différents cas de figure rencontrés lors de la tentative d'authentification :

    • lorsque le login n'existe pas
    • lorsque le mot de passe est incorrect
  2. Dans le fichier signin.php, affichez le contenu de la variable de session message dans une balise <section>, si cette variable existe et n'est pas vide.

Pour les plus rapides

  • Niveau 1 : Ajoutez un fichier de style CSS pour mettre en forme votre formulaire.
  • Niveau 2 : Utilisez Bootstrap pour mettre en forme vos différentes pages.