SESSIONS EN PHP

Introduction

Généralités

Les sessions sont un moyen simple de stocker des données individuelles pour chaque utilisateur en utilisant un identifiant de session unique. Elles peuvent être utilisées pour faire persister des informations entre plusieurs pages. Les données de session sont stockées sur le serveur.

Le mécanisme des sessions en PHP est assez simple : Lorsqu'une page contenant la fonction "session_start()" est appelée une première fois, le serveur attribue un identifiant unique à l'utilisateur. Cet identifiant, stocké sur le client dans le cookie de session, est retransmis à chaque requête. Le serveur sait ainsi quel utilisateur appelle la page.

La variable superglobale "$_SESSION", créée automatiquement par PHP, est le tableau associatif contenant toutes les variables de sessions pour la session courante.

D'autres fonctions permettent également de gérer les sessions en PHP. Par exemple :

Exemple

Tester le code ci-dessous, en rechargeant plusieurs fois de suite la page.

<?php
  session_start();
?>
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
  </head>
  <body>
    <p>Test de session.</p>
    <?php
      if (!isset($_SESSION['nb'])) {
        $_SESSION['nb'] = 0;
      }
      else {
        $_SESSION['nb']++;
      }
      echo "Numéro : ". $_SESSION['nb'];
    ?>
  </body>
</html>

Application

Page d'identification

1. Qu'obtient-on avec la valeur "password" de l'attribut "type" de la balise "input"?

2. Créer la page d’identification "index.html" comportant un formulaire invitant le visiteur à entrer :

Les deux valeurs seront envoyées à la page "verification.php", avec la méthode POST, en cliquant sur le bouton adéquat.

Page de vérification

Ecrire maintenant la page de vérification "verification.php".

On propose, ci-dessous, un code à adapter et à compléter :

<?php
  // Identifiant et mot de passe normalement récupérés dans une base de données
  $login_valide = "votre_identifiant_choisi";
  $pwd_valide = "votre_mot_de_passe_choisi";
  // Récupération des valeurs entrées dans le formulaire
  ...
  if (...) {
    ...
  }
  else {
    ...
  }
?>

Pour rediriger le visiteur vers une autre page, une solution consiste à utiliser la fonction "header()". Attention à ce qu'elle soit appelée avant tout envoi de code au navigateur, sous peine de générer une erreur.

Exemple de redirection :

<?php
  ...
  header('Location: page_de_redirection.php');      
  ...
?>

Page de membre

Proposer une page "membre.php" qui affiche :

Page de déconnexion

Créer la page "deconnexion.php" qui a pour tâches :