Stocker les sessions dans la base de donnée
Je laisserai le soin à chacun de se faire une idée sur le système, c'est une méthode comme une autre que j'ai adopté sur mon projet, et dont j'en suis plutôt content (Simple, efficace et sécurisé).
Avant de réaliser tout ça, j'ai lu pas mal de fichiers la dessus, certaines parties de code sont issu d'autres programmeurs et ont été modifiées pour la réalisation de ce système.
Il n'est pas encore optimiser au maximum ( il ne le sera jamais d'ailleurs
)
Il permet entre autre de vérifier si une personne est connecté et si oui de récupérer toutes les informations de son compte (non pas bancaire
).
La base de donnée :
La table sessions :
Elle va contenir toutes les informations sur les sessions
Code PHP :
<?php
CREATE TABLE `sessions` (
`sid` varchar(26) NOT NULL,
`uid` int(10) unsigned NOT NULL,
`ipaddress` varchar(40) default NULL,
`time` bigint(30) default NULL,
`useragent` varchar(100) default NULL,
`login` int(1) unsigned default '1',
`failed_login` int(2) unsigned default '0',
PRIMARY KEY (`sid`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
sid => Identifiant de la session (26 caractères)
Forme du sid : 9bk95rkq9k43drro0q28v2cb83
uid => Id du membre quand il sera connecté
ipaddress => Adresse ip
time => Dernière visite
useragent => Navigateur utilisé
login => Connecté ou invité 0: invité & 1:connecté
failed_login => Tentative de connexion
Les fichiers :
La classe session :
Code PHP :
<?php
class session {
var $session_time = (120*60);// 2 heures
var $sid = ""; // Id de la session transmis à son ouverture
function __construct() {
$this->gc();//on appelle la fonction gc nettoyage des sessions
}
Dans un premier temps on définit les variables de la classe.
session_time : Durée de la session en secondes
sid : Identifiant de la session qui sera transmis à son ouverture
Dans le constructeur, on note l'appel de la fonction gc qui correspond au nettoyage des sessions dépassées, comme ça on ne travail que sur des sessions valides.
La première fonction : start($sid)
C'est elle qui va définir la procédure de fonctionnement des sessions
1) Récupération du sid
2) Écriture de la session (Création ou mise à jour)
3) Lecture de la session (Récupération des informations)
Code PHP :
<?php
function start($sid) {
$this->sid = $sid;
$this->write();
$this->read();
}
Cette fonction à un but essentiel, c'est elle qui va mettre à jour la session du client selon cette procédure.