- ^ Références
- ^ Les classes utilitaires
- jApp : chemins de l'application
- jDateTime : manipulation de dates et heures
- jFile : lire ou créer des fichiers
- jFilter : vérification et filtrage de données
- jImageModifier: Modifier une image
- jMailer : envoi de mails
- jMessage : informations entre actions
- jSession : stockage de sessions
- jWiki : transformation de texte wiki
Section: jSession : stockage de sessions
« jMessage : informations entre actions | ^ Les classes utilitaires | jWiki : transformation de texte wiki » |
− Table des matières
jSession est utilisé par Jelix pour la gestion du stockage des sessions. Cet
objet n'est pas utilisé pour lire ou écrire des variables en session. Pour faire
ceci, utilisez $_SESSION
comme d'habitude.
Les paramètres du moteur de stockage de la session sont indiqués dans la section
sessions
du fichier de configuration
app/system/mainconfig.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 convertis.
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 = ""
Un dao est fourni par défaut dans le module jelix, son sélecteur est :
jelix~jsession
.
Jelix créé automatiquement la table correspondante quand vous installez votre
application et que la configuration dans la section sessions
est faite.
En cours de développement, vous pouvez exécuter l'un des scripts SQL
lib/jelix/core-modules/jelix/install/sql/install_jsession.schema.*
.
Concrètement, la table installée sera celle-ci :
CREATE TABLE IF NOT EXISTS `jsessions` (
`id` varchar(64) NOT NULL,
`creation` datetime NOT NULL,
`access` datetime NOT NULL,
`data` longblob NOT NULL,
PRIMARY KEY (`id`)
) DEFAULT CHARSET=utf8;
Paramètres du cookie de session ¶
Il est possible de paramètrer le cookie de session afin de le sécuriser.
[sessions]
; ...
cookieSecure=off
cookieHttpOnly=on
cookieExpires=0
cookieSameSite=
Les paramètres de configuration correspondent aux paramètres de cookie
respectivement secure
, httponly
, expires
et samesite
.
Voir la documentation de l'entête Set-Cookie.