- ^ Les classes utilitaires
- jFilter : vérification et filtrage de données
- jDateTime : manipulation de dates et heures
- jHttp : faire des requête HTTP
- jMailer : envoi de mails
- jWiki : transformation de texte wiki
- jSession : stockage de sessions
- jMessage : informations entre actions
- jFile : lire ou créer des fichiers
- jIniFileModifier: lire ou modifier des fichiers de configuration (ini)
Chapitre: jSession : stockage de sessions
« jWiki : transformation de texte wiki | ^ Les classes utilitaires | jMessage : informations entre actions » |
− Table des matières
jSession permet de stocker les sessions de façon personnalisée, en fonction de paramètres déclarés dans app/var/config/defaultconfig.ini.php
Nom de la session ¶
Pour diverses raisons, on peut vouloir changer le nom de la session (par défaut, c'est PHPSESSID).
Pour changer ce nom de variable/cookie, on peut utiliser la configuration suivante :
[sessions]
name = "masession"
NB : seuls les caractères alpha-numériques sont autorisés.
Stockage dans un répertoire ¶
Il n'est pas toujours prudent de stocker les sessions dans le répertoire par défaut prévu par l'hébergeur, car celui-ci peut être accessible de tout le monde, comme /tmp/ par exemple.
Pour utiliser jSession avec un répertoire personnalisé :
[sessions]
storage = "files"
files_path = "app:var/sessions/"
NB : les mots clés app: et lib: sont reconnus.
Stockage dans la base de données ¶
On peut avoir besoin de stocker les données de session en base de données, par exemple pour permettre un partage aisé en cas de répartition de charge entre plusieurs serveurs web.
Pour utiliser jSession avec un Dao :
[sessions]
storage = "dao"
dao_selector = "jelix~jsession"
dao_db_profile = ""
NB : un dao est fourni par défaut dans le module jelix, son sélecteur est : jelix~jsession.
La structure de table pour ce DAO est :
CREATE TABLE `jsessions` (
`id` varchar(64) NOT NULL,
`creation` datetime NOT NULL,
`access` datetime NOT NULL,
`data` text NOT NULL,
PRIMARY KEY (`id`)
) DEFAULT CHARSET=utf8;