Gestion des sessionsSessions
&reftitle.intro;
Le support des sessions de PHP est un moyen de préserver
des données entre plusieurs accès. Cela vous permet de
créer des applications personnalisées, et d'augmenter
l'attrait de votre site.
Chaque visiteur accédant à votre page web se voit assigner un
identifiant unique, appelé "identifiant de session". Il peut
être stocké soit dans un cookie, soit propagé dans l'URL.
Le support des sessions vous permet d'enregistrer un
nombre illimité de variables qui doivent être préservées
entre les requêtes. Lorsqu'un visiteur accède à votre site,
PHP va vérifier automatiquement (si
est activé) ou sur demande (explicitement avec
session_start ou implicitement avec
session_register) s'il existe une
session du même nom. Si c'est le cas, l'environnement
précédemment sauvé sera recréé.
Si vous activez
session.auto_start alors le seul moyen de mettre des objets
en session est de charger les définitions de classe avec
auto_prepend_file
dans lequel vous chargez les définitions dont vous avez besoin,
ou bien vous devrez utiliser serialize
sur votre objet, et unserialize
pour le récupérer.
Toutes les variables sont sérialisées après l'exécution du
script PHP. Les variables qui sont indéfinies sont marquées
comme telles. Lors des accès ultérieurs, elles ne seront pas
définies, jusqu'à ce que l'utilisateur le fasse.
Quelques types de données ne peuvent pas être linéarisés pour être stockés
dans les sessions. Cela inclut les variables de type resource
ou les objets avec des références circulaires (i.e. objet qui passe une
référence à lui-même à un autre objet).
La gestion des sessions a été ajoutée en PHP 4.0.0.
Notez que lorsque vous travaillez avec les sessions, un enregistrement
dans la session ne sera pas créé tant que la variable ne sera pas
enregistrée en utilisant la fonction session_register
ou en ajoutant une clé à la variable super-globale
$_SESSION. Cela n'est vrai que si vous avez débuté une
session en appelant la fonction session_start.
PHP 5.2.2 a introduit une fonctionnalité non documentée pour stocker
dans le dossier "/tmp" même si open_basedir
est activé, et "/tmp" n'est pas explicitement ajouté dans les chemins autorisés.
Cette fonctionnalité a été retirée de PHP depuis PHP 5.3.0.
&reference.session.setup;
&reference.session.constants;
&reference.session.examples;
&reference.session.security;
&reference.session.reference;