$_SESSION |
Session |
---|---|
PHP 4.1.0+ |
Syntaxe
variable = $_SESSION[champs]; |
$_SESSION[champs] = variable; |
Paramètres
Nom | Description |
---|---|
variable | Ce paramètre permet d'indiquer la variable recevant et modifiant le contenu de la variable de session. |
champs | Ce paramètre permet d'indiquer le nom du champ dans la session. N'importe quel nom de champ peut-être utilisé, tout comme un nom de variable. |
Description
Cette variable super global contient un tableau de tous les variables de session.
Remarques
- Cette variable est considérée comme une super global, ainsi il n'est pas nécessaire d'indiquer «global $_SERVER;» dans les fonctions et des classes pour y avoir accès.
- Les variables ont une durée de vie limitée correspondant à la session depuis le dernier chargement d'une page (et non pas le dernier appel de la fonction «session_start») et son délai est défini par la variable «session.cache_expire». La valeur par défaut est de 3 heures maximum. Cependant, il est possible que la session expire avant le délai indiquer si par exemple il y a trop de sessions ouverte simultanément, le serveur a redémarré, l'entête d'information «Cache-Control» du navigateur Web (soit la variable serveur «session.cache_limiter») ou d'autres convention relier au serveur Web (collecteur de miettes lancé dans 1% des appels à la fonction «session_start» et la variable «session.gc_divisor»).
- Le serveur Web demande des informations sur les «COOKIES» du navigateur Web afin de déterminer la session qu'il utilise, lesquelles sont transmises lors des envois d'entête d'information lors d'une requête à une page Web. Si les options sont activées, il est également possible de transmettre l'information sur la session en utilisant le paramètre URL «PHPSESSID».
- ATTENTION ! Si vous écrivez vos sessions dans un dossier sur le disque, il est important que le serveur Web est la possibilité de les créer, les modifier et de les supprimer, car sinon, vous aurez des comportements étranges.
- La limite de taille de la chaine de caractères d'une session n'est pas limitée par le langage de programmation PHP mais plutôt par le gestion de sessions (session_save_handler), lequel par exemple, pourra utiliser un système de fichiers ayant certaines limites.
- Détruire une variable unique de session : Vous pouvez supprimer, de la mémoire, une variable unique de session en utilisant la fonction «unset».
- Détruire une session complète : Si vous souhaitez éliminer complètement la session courante, vous devriez faire appel à la fonction «session_destroy».
- Les sessions permettent uniquement d'entreposer des données simples, comme des chiffres et des lettres, ainsi pour des objets, vous devrez utiliser les fonctions «serialize» et «unserialize» afin de conserver leur contenu.
- AJAX : Si vous de développez des routines AJAX à l'aide du PHP, il peut être préférable d'exploiter la fonction «session_write_close» afin d'obtenir une meilleure fluidité du code.
- Symfony 1.3 : Les cadres d'applications cherchent a être indépendant des changements potentiel du langage de programmation PHP, car il n'est pas garantie que dans le future se sera pas une autre variable allant permettre d'accéder au contenu des sessions. Ainsi, dans le cas de Symfony version 1.3, si vous souhaitez effectuer la lecture de la variable de session «currentEmail», vous devrez plutôt passer par la méthode suivante :
- sfContext::getInstance()->getUser()->getAttribute('currentEmail');
- sfContext::getInstance()->getUser()->setAttribute('currentEmail', 'email@gladir.com');
et pour son écriture :
Voir également
Articles - Pertes de session sous PHP
Langage de programmation - PHP - Référence de procédures et fonctions - «SESSION_ID»
Langage de programmation - PHP - Référence de procédures et fonctions - «SESSION_NAME»
Langage de programmation - PHP - Référence de procédures et fonctions - «SESSION_START»
Dernière mise à jour : Dimanche, le 22 mars 2015