Chapitre 4 : Mémorisation temporaire des informations client

Mémorisation temporaire des infos client :
  • Sessions
  • Cookies

1. Sessions

Permettent de mémoriser des informations sur un utilisateur, côté serveur. L'utilisateur (navigateur client ayant fait une requête) est identifié par un id de session.

Les sessions peuvent être démarrées manuellement en utilisant la fonction session_start(). Si la directive de configuration session.auto_start est définie à 1, une session démarrera automatiquement lors du début de la demande.

session_start doit être invoqué avant toute écriture sur la page

<?php
session_start();
if (!isset($_SESSION['count'])) {
  $_SESSION['count'] = 0;
} else {
  $_SESSION['count']++;
}
?>

Fonction/variable Rôle
session_start() Démarre une nouvelle session ou reprend une session existante
$_SESSION Tableau associatif super global contenant les variables de session

1.1. Création d'une variable

<?php
session_start();
$_SESSION["logged"]=true;
?>

1.2. Suppression d'une variable

<?php
session_start();
unset($_SESSION["logged"]);
?>

1.3. Fermeture et suppression des variables

<?php
// Initialisation de la session.
// Si vous utilisez un autre nom
// session_name("autrenom")
session_start();

// Détruit toutes les variables de session
$_SESSION = array();

// Si vous voulez détruire complètement la session, effacez également
// le cookie de session.
// Note : cela détruira la session et pas seulement les données de session !
if (ini_get("session.use_cookies")) {
    $params = session_get_cookie_params();
    setcookie(session_name(), '', time() - 42000,
        $params["path"], $params["domain"],
        $params["secure"], $params["httponly"]
    );
}

// Finalement, on détruit la session.
session_destroy();
?>

2. Cookies

Rôle, limites :

  • 65 ko
  • Texte
  • Acceptation côté client

2.1. Création

<?php
// on définit une durée de vie de notre cookie (en secondes), 24 heures ici
$temps = 24*3600;

// on envoie un cookie de nom pseudo portant la valeur cestmoi
setcookie ("pseudo", "cestmoi", time() + $temps);
?>

2.2. Accès

L'accès à un cookie se fait par l'intermédiaire du tableau associatif super global $_COOKIE :

echo $_COOKIE["name"];

2.3. Suppression

Il suffit d'envoyer à nouveau le cookie dans la requête (avant écriture sur la page), et de lui affecter une heure d'expiration dépassée.

<?php
// Utilisation de la date courante, moins une heure
setcookie ("TestCookie", "", time() - 3600);
?>

2.4. Tableau de cookies

Il est possible d'utiliser les cookies pour y stocker un tableau :

<?php
// Définit les cookies
setcookie("cookie[three]", "cookiethree");
setcookie("cookie[two]", "cookietwo");
setcookie("cookie[one]", "cookieone");

// Après le rechargemet de la page, nous les affichons
if (isset($_COOKIE['cookie'])) {
    foreach ($_COOKIE['cookie'] as $name => $value) {
        $name = htmlspecialchars($name);
        $value = htmlspecialchars($value);        
        echo "$name : $value <br />\n";
    }
}
?>

php-rt/cours/chap4.txt · Dernière modification: 2020/03/04 08:01 par jcheron
GNU Free Documentation License 1.3
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0