Médiaforma

PHP MySQL – Exercice sur les sessions

Print Friendly

Définissez un formulaire dans lequel l’utilisateur pourra saisir son prénom et son nom. Créez des variables de session avec les valeurs entrées lorsque l’utilisateur clique sur le bouton Envoyer et vérifiez que ces variables de session sont bien accessibles dans une autre page.

Solution

Faites une pause dans la vidéo et écrivez les trois pages demandées. Vous pourrez reprendre la lecture de la vidéo pour avoir des explications détaillées sur ces trois pages.

Voici le code responsable de la saisie des données :

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <title>Transission de données par un formulaire</title>
  </head>
  <body>
    <form name="MonFormulaire" method="post" action="traitement.php">
    <table><tr><td><label>Prénom</label></td>
      <td><input type="text" name="prenom"></td></tr>
      <tr><td><label>Nom</label></td>
      <td><input type="text" name="nom"></td></tr>
      <tr><td><input type="submit" name="Nom" value="Envoyer"></td>
      <td></td></tr>
    </table>
    </form>
  </body>
</html>

Ce formulaire est très simple. Il permet de saisir le prénom et le nom de l’utilisateur à l’aide de champs input de type text nommés prenom et nom. Lorsque l’utilisateur clique sur le bouton Envoyer, ces données sont transmises au script traitement.php.

 

Voici le code exécuté lorsque l’utilisateur clique sur le bouton Envoyer :

<?php
  session_start();
?>
<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <title>Traitement des données envoyées par formulaire</title>
  </head>
  <body>
    <?php
      $prenom = htmlspecialchars($_POST["prenom"]);
      $nom = htmlspecialchars($_POST["nom"]);
      $_SESSION["prenom"] = $prenom;
      $_SESSION["nom"] = $nom;
      echo "Les données du formulaire ont été mémorisées.<br>";
      echo "<a href=\"lecture-session.php\">Cliquez sur ce lien pour vérifier.</a>";
    ?>
  </body>
</html>

La fonction session_start est exécutée au début du script, avant la déclaration du doctype. Les données prenom et nom sont récupérées dans le tableau superglobal $_POST et stockées dans les variables prenom et nom.

Ces variables sont mémorisées dans les variables de session prenom et nom en utilisant le tableau superglobal $_SESSION.

Un message indique que les données de session ont été mémorisées, puis un lien hypertexte est affiché. Le but de ce lien est de montrer que les variables de session existent et sont toujours pertinentes sur une autre page.

 

Voici le code de la page annexe, affichée lorsque l’utilisateur clique sur le lien de la page traitement.php :

<?php
  session_start();
?>
<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <title>Lecture des variables de session prenom et nom</title>
  </head>
  <body>
  <?php
    $prenom = $_SESSION["prenom"];
    $nom = $_SESSION["nom"];
    echo "Les données mémorisées dans les variables de session sont bien accessibles :<br><ul>";
    echo "<li>\$_SESSION[\"prenom\"] vaut ".$_SESSION["prenom"]."</li>";
    echo "<li>\$_SESSION[\"nom\"] vaut ".$_SESSION["nom"]."</li></ul>";
  ?>
  </body>
</html>

Ici également, la première instruction du script est session_start. Cette instruction apparaît avant le doctype du document.

Les variables $prenom et $nom sont initialisées en lisant le contenu du tableau superglobal $_SESSION. Elles sont alors affichées sur l’écran avec deux instructions echo.

Exécutons la première page dans Wamp server.

Un prénom et un nom sont saisis dans le formulaire puis le bouton Envoyer est cliqué.

La page traitement.php est exécutée. Un message indique que les données du foirmulaire ont été sauvegardées dans des variables de session.

Pour vérifier cela, nous cliquons sur le lien hypertexte pour afficher la page lecture-session.php. Effectivement, les deux variables de session contiennent les valeurs saisies dans le formulaire.

 

Vous avez aimé cet article ? Partagez-le avec vos réseaux...
 
Comments

No comments yet.

Leave a Reply