Algorithmique et développement web S2 (M2202) – TD #4

Dans cette séance de TD on va utiliser les sessions et les bases de données.

Révisez le CM #3 pour faire ces exercices.

Avant de commencer, créez dans votre répertoire m2202 un sous-répertoire m2202-td4 pour sauvegarder les exercices de cette séance (TD #4).

Dans ce répertoire m2202-td4, créez un répertoire appelé exo1 pour le premier exercice, exo2 pour le deuxième, etc.

Exercices

On commence par un exercice qui utilise les sessions, très utile pour votre projet.

Exercice 1

Cette exercice va vous apprendre comment faire l'identification d'un utilisateur en améliorant l'exercice 2 du TD #2.

Sur la page d'accueil, un formulaire permet d'entrer un mot de passe. Si le mot de passe est correct, on renvoie l'utilisateur vers la page d'accueil, qui affiche maintenant son nom et un lien pour se déconnecter. Si le mot de passe n'est pas correct, on affiche un message d'erreur et un lien vers la page d'accueil. Si on choisit de se déconnecter, on revient dans la page d'accueil, qui nous propose de nous connecter.

Voici plus de détails sur comment faire cet exercice. Il faudra faire trois fichiers : index.php (page d'accueil), traitement.php (traitement du formulaire, création de la session) et deconnexion.php :

  • index.php — S'il existe une session de connexion, on affiche le nom de l'utilisateur et un lien vers deconnexion.php. Sinon, on affiche un formulaire pour rentrer le mot de passe, qui est envoyé au fichier traitement.php.
  • traitement.php — On vérifie si le mot de passe est dans la liste. Si oui, on crée une session avec le nom de l'utilisateur (ainsi on saura que l'utilisateur est connecté et on pourra afficher son nom) et on le renvoie vers index.php. Sinon, on affiche un message d'erreur et un lien vers la page d'accueil.
  • deconnexion.php — On efface la session et on renvoie l'utilisateur vers index.php.

On continue à améliorer ce site web, maintenant en y intégrant une base de données pour stocker les mots de passe.

Exercice 2

Ajoutez une base de de donnés à l'exercice 1.

Au lieu d'avoir les noms et les mots de passe des utilisateurs dans un tableau associatif, créez une table dans base de donnés avec au moins deux champs : nom et motdepasse.

Dans le fichier traitement vous devriez faire une requête SQL comme :

SELECT * FROM td4exo2 WHERE motdepasse = ...

Maintenant un exercice plus amusant.

Exercice 3

On va faire un site web dynamique qui compte nos clics et affiche quelques statistiques.

Un fichier appelé index.php affiche le nombre de clics effectués, la vitesse (clics par seconde) et la vitesse maximale. En bas, il y a un lien pour cliquer, et un autre pour réinitialiser le compteur.

Le code HTML généré doit ressembler à ceci :

<!DOCTYPE html>
<html lang="fr">
<head>
  <meta charset="utf-8">
  <title>M2202</title>
</head>
<body>
  <h1>TD #4 / Exo 3</h1>
  <p>
    Nombre de clics : <!-- remplir -->
  </p>
  <p>
    Vitesse (clics/sec) : <!-- remplir -->
  </p>
  <p>
    Vitesse max : <!-- remplir -->
  </p>
  <p>
    <a href="traitement.php">Click !</a> &middot; <a href="reset.php">Reset</a>
  </p>
</body>
</html>

Démarrez une session pour stocker le nombre de clics (initialisé à zéro) et la date de début (utilisez la fonction time() [doc]). Chaque fois qu'on visite cette page, on incrémente le compteur de clics et on recalcule les statistiques.

Dans le fichier reset.php, fermez la session et renvoyez l'utilisateur vers la page d'accueil.

Astuce : pour afficher une variable de type float avec moins de chiffres décimales, utilisez la fonction number_format().