Aller plus loin

Si vous le souhaitez, sachez qu'il est possible de réaliser ce TP en une seule page au lieu de deux.

Imaginez pour cela que le formulaire, sur la page formulaire.php, s'appelle lui-même. En clair, l'attribut action du formulaire serait action="formulaire.php". Cela voudrait dire que les données seraient envoyées sur la même page, comme sur la figure suivante.

La page se renvoie les données



Dans ce mode de fonctionnement, la page formulaire.php contiendrait à la fois le formulaire et le message secret.

Comment peut-on faire ça ? Ce n'est pas dangereux ? Ce ne serait pas très sécurisé, si ?



On peut très bien faire cela de façon tout à fait sécurisée, c'est juste un peu plus « difficile » à imaginer.

Il faut construire le code de votre page formulaire.php en deux grandes parties :

  • si aucun mot de passe n'a été envoyé (ou s'il est faux) : afficher le formulaire ;
  • si le mot de passe a été envoyé et qu'il est bon : afficher les codes secrets.

Toute votre page PHP sera donc construite autour d'un grand if qui pourrait ressembler à quelque chose comme ceci :

Code : PHP 

 1

 2

 3

 4

 5

 6

 7

 8

 9

10

11

12

13

14

<?php


// Le mot de passe n'a pas été envoyé ou n'est pas bon

if (!isset($_POST['mot_de_passe']) OR $_POST['mot_de_passe'] != "kangourou")

{

       // Afficher le formulaire de saisie du mot de passe

}

// Le mot de passe a été envoyé et il est bon

else

{

       // Afficher les codes secrets

}


?>



Voilà dans les grandes lignes comment on ferait. Chaque fois que la page formulaire.php est appelée, elle détermine (grâce au if) si on l'appelle pour afficher la partie secrète ou si on l'appelle pour afficher le formulaire de saisie du mot de passe.

Voici alors ce qui se passera :

  1. La première fois que le visiteur charge la page formulaire.php, aucune donnée POST n'est envoyée à la page. C'est donc le formulaire qui s'affiche.
  2. Une fois qu'on a envoyé le formulaire, la page formulaire.php est rechargée et cette fois, elle reçoit les données POST qu'on vient d'envoyer. Elle peut donc les analyser et, si le mot de passe est bon, elle affiche les codes secrets.

Sauriez-vous refaire ce TP en une seule page en vous basant sur mes indices ? Essayez ! Ce sera un très bon exercice ! 

Vous pourriez même aller plus loin, car dans mon schéma de code précédent, je n'ai pas prévu de cas pour afficher « Mot de passe incorrect ». Cela peut se faire facilement en découpant votre page en trois à l'aide d'un elseif : formulaire, mot de passe incorrect, codes secrets.

Créé avec HelpNDoc Personal Edition: Révolutionnez votre processus de documentation avec les capacités en ligne de HelpNDoc