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.
<?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 |
<?php session_start(); $_SESSION["logged"]=true; ?>
<?php session_start(); unset($_SESSION["logged"]); ?>
<?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(); ?>
Rôle, limites :
<?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); ?>
L'accès à un cookie se fait par l'intermédiaire du tableau associatif super global $_COOKIE :
echo $_COOKIE["name"];
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); ?>
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"; } } ?>