Français
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 :
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 = "jsession~session"
dao_db_profile = ""
NB : un dao est fourni par défaut, c'est jsession~session. Il se trouve dans jelix-modules/jsession/daos/.
La structure de table pour ce DAO est :
CREATE TABLE `sessions` (
`id` varchar(64) NOT NULL,
`creation` datetime NOT NULL,
`access` datetime NOT NULL,
`data` text NOT NULL,
PRIMARY KEY (`id`)
) DEFAULT CHARSET=utf8;
English
jSession provides alternative storage engines. Configuration is done in app/var/config/defaultconfig.ini.php :
File storage
Storing session files in default path may not be a good idea, as that path is often worldwide readable/writable, like /tmp/ for example.
To make jSession store sessions in your own defined path :
[sessions]
storage = "files"
files_path = "app:var/sessions/"
NB : app: and lib: keywords are converted.
Database storage
You may need to store your sessions in data, for example when you are doing load-balancing with multiple front servers.
jSession uses jDao :
[sessions]
storage = "dao"
dao_selector = "jsession~session"
dao_db_profile = ""
NB : a default dao is provided : jsession~session. It's located in jelix-modules/jsession/daos/.
The corresponding DB creation request :
CREATE TABLE `sessions` (
`id` varchar(64) NOT NULL,
`creation` datetime NOT NULL,
`access` datetime NOT NULL,
`data` text NOT NULL,
PRIMARY KEY (`id`)
) DEFAULT CHARSET=utf8;