Pour voir si votre serveur accepte cette fonctionnalité RDV dans votre phpinfo section Session -> Registered save handlers, si Sqlite est dans la liste c'est OK

Les deux façons pour activer SQlite pour les sessions :
La gestion est assez souple on peux modifier ca via les directives ini ou directement via des fonctions
- Version ini :
grâce à session.save_handler et session.save_path
ini_set('session.save_handler', 'sqlite');
ini_set('session.save_path', 'session.db');
Ou direct dans le php.ini ou en .htaccess (dans les cas je conseil de mettre le path en absolue)- Version php :
grâce à session_module_name et session_save_path
session_module_name('sqlite');
session_save_path('session.db');
On peut bien-sûr mixer les différentes façonsAttention vous devez avoir le droit en écriture sur le dossier.
Un coup de session_start() voila notre session.db, malheureusement c'est du sqlite2 (je demanderais pour la gestion du 3)
Récupérer les sessions :
La base correspond a
CREATE session_data (
sess_id PRIMARY KEY,
value TEXT,
updated INT
)
- sess_id : l'id de session- value : le contenu de la session
- updated : la date de la dernière mise a jour
(pas très compliquer)
Pour la suite on va utiliser PDO pour lire notre base, comme c'est du sqlite 2 le DNS sera sqlite2
try
{
$dbh = new PDO('sqlite2:' . session_save_path());
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch(PDOException $e)
{
exit($e->getMessage());
}
Les données étant brutes dans la base il faudra utiliser session_decode et session_encode pour les manipuler, je vous conseil de bien lire la doc de ces fonctions car elles sont pas simple a utiliser puisque qu'elles écrasent la session en cours.