WikiNi

GererLesSessionsEnBase

PagePrincipale :: DerniersChangements :: DerniersCommentaires :: ParametresUtilisateur :: Vous êtes 38.107.191.105

Gérer les sessions par la base de données

Le but de cette page est d'envisager une solution afin d'utiliser une base de données (par exemple MySQL mais la solution devrait pouvoir évoluer si WikiNi gère un jour d'autre SGBD's) pour y stocker les variables de sessions de l'utilisateur.

Intérêt

Gérer les sessions via la base de données permet d'avoir un meilleur contrôle sur ces données. Lorsque l'on laisse php gérer les sessions, on ne sait a priori pas comment il fait, et même en supposant qu'il les gère par des fichiers (configuration par défaut), on ne sait a priori pas non plus où ces fichiers sont stockés. Il est dès lors impossible de travailler sur le contenu des sessions des autres visiteurs (toujours présents ou non).
Gérer les sessions par la base de données permet de le faire, ce qui peut être très utile pour

Proposition de solution

Cette solution a été développée en parrallèle avec l'action WhoIsOnline. Elle stocke ainsi en base de données:

ChangeLog

2006-01-17

2005-04-12


Instructions d'installation

(ces instructions se trouvent également dans le fichier instructions.txt fourni avec l'archive proposée ci-après)
IMPORTANT: Faites toujours une copie de sauvegarde de vos fichiers et de votre base de données avant de les modifier !
  1. Téléchargez le fichier sessions.php disponible à l'adresse: http://wikinicontrib.notredomaine.org/SessionsInDataBase-v.0.1.1-2006-01-17.zip et placez-le à la racine de votre wiki. Ce fichier est également disponible à la page GererLesSessionsEnBaseCodeSessionsPhp.
  2. Exécuter la requête SQL suivante, sans oublier de modifier le nom de la table 'wikini_sessions' si besoin :
(si la variale table_prefix de votre fichier wakka.config.php est différente de wikini_, pensez à créer une table qui porte le bon préfixe en changeant le nom de la base après CREATE TABLE, sinon le nom de votre table ne correspondra pas à la requête faite par WikiNi et vous aurez un beau message d'erreur)
CREATE TABLE `wikini_sessions` (
			`id` MEDIUMINT( 5 ) NOT NULL AUTO_INCREMENT ,
			`ip` VARCHAR( 15 ) NOT NULL ,
			`session_id` VARCHAR( 32 ) NOT NULL ,
			`datas` TEXT NOT NULL ,
			`username` VARCHAR( 50 ) NOT NULL ,
			`tag` VARCHAR( 50 ) NOT NULL ,
			`handler` VARCHAR( 20 ) NOT NULL ,
			`time` VARCHAR( 12 ) NOT NULL ,
			`page_count` MEDIUMINT( 4 ) NOT NULL default 1,
		PRIMARY KEY ( `id` ) ,
		UNIQUE (
			`ip` ,
			`session_id` 
		)
	);



Il y a 3 commentaires sur cette page. [Afficher commentaires/formulaire]