Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente | |||
web:php:chap4 [2023/11/08 15:23] – supprimée - modification externe (Unknown date) 127.0.0.1 | web:php:chap4 [2023/11/08 15:23] (Version actuelle) – ↷ Page déplacée de php:chap4 à web:php:chap4 jcheron | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | ====== Chapitre 4 : Mémorisation temporaire des informations client ====== | ||
+ | < | ||
+ | |||
+ | ===== -- Sessions ===== | ||
+ | Permettent de mémoriser des informations sur un utilisateur, | ||
+ | |||
+ | 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. | ||
+ | |||
+ | < | ||
+ | |||
+ | <sxh php; | ||
+ | <?php | ||
+ | session_start(); | ||
+ | if (!isset($_SESSION[' | ||
+ | $_SESSION[' | ||
+ | } else { | ||
+ | $_SESSION[' | ||
+ | } | ||
+ | ?> | ||
+ | </ | ||
+ | |||
+ | |< 100% >| | ||
+ | ^Fonction/ | ||
+ | |session_start() |Démarre une nouvelle session ou reprend une session existante | | ||
+ | |$_SESSION |Tableau associatif super global contenant les variables de session | | ||
+ | |||
+ | |||
+ | ==== -- Création d'une variable ==== | ||
+ | |||
+ | <sxh php> | ||
+ | <?php | ||
+ | session_start(); | ||
+ | $_SESSION[" | ||
+ | ?> | ||
+ | </ | ||
+ | |||
+ | ==== -- Suppression d'une variable ==== | ||
+ | |||
+ | <sxh php> | ||
+ | <?php | ||
+ | session_start(); | ||
+ | unset($_SESSION[" | ||
+ | ?> | ||
+ | </ | ||
+ | |||
+ | ==== -- Fermeture et suppression des variables ==== | ||
+ | |||
+ | <sxh php> | ||
+ | <?php | ||
+ | // Initialisation de la session. | ||
+ | // Si vous utilisez un autre nom | ||
+ | // session_name(" | ||
+ | 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(" | ||
+ | $params = session_get_cookie_params(); | ||
+ | setcookie(session_name(), | ||
+ | $params[" | ||
+ | $params[" | ||
+ | ); | ||
+ | } | ||
+ | |||
+ | // Finalement, on détruit la session. | ||
+ | session_destroy(); | ||
+ | ?> | ||
+ | </ | ||
+ | ===== -- Cookies ===== | ||
+ | |||
+ | **Rôle, limites :**\\ | ||
+ | * 65 ko | ||
+ | * Texte | ||
+ | * Acceptation côté client | ||
+ | |||
+ | ==== -- Création ==== | ||
+ | |||
+ | <sxh php> | ||
+ | <?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 (" | ||
+ | ?> | ||
+ | </ | ||
+ | |||
+ | ==== -- Accès ==== | ||
+ | L' | ||
+ | <sxh php; | ||
+ | echo $_COOKIE[" | ||
+ | </ | ||
+ | |||
+ | ==== -- Suppression ==== | ||
+ | Il suffit d' | ||
+ | |||
+ | <sxh php> | ||
+ | <?php | ||
+ | // Utilisation de la date courante, moins une heure | ||
+ | setcookie (" | ||
+ | ?> | ||
+ | </ | ||
+ | |||
+ | ==== -- Tableau de cookies ==== | ||
+ | Il est possible d' | ||
+ | |||
+ | <sxh php> | ||
+ | <?php | ||
+ | // Définit les cookies | ||
+ | setcookie(" | ||
+ | setcookie(" | ||
+ | setcookie(" | ||
+ | |||
+ | // Après le rechargemet de la page, nous les affichons | ||
+ | if (isset($_COOKIE[' | ||
+ | foreach ($_COOKIE[' | ||
+ | $name = htmlspecialchars($name); | ||
+ | $value = htmlspecialchars($value); | ||
+ | echo "$name : $value <br /> | ||
+ | } | ||
+ | } | ||
+ | ?> | ||
+ | </ |