27-07-2008, 06:13 PM
(Modification du message : 30-07-2008, 12:18 AM par OncleJames.)
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
}