2008-11-17 11:00:00 +00:00
|
|
|
<?php
|
|
|
|
|
|
|
|
class session {
|
|
|
|
|
|
|
|
var $xid;
|
|
|
|
|
|
|
|
var $level = 0;
|
|
|
|
|
|
|
|
var $values;
|
|
|
|
|
|
|
|
function clean()
|
|
|
|
{
|
|
|
|
global $config;
|
|
|
|
|
|
|
|
if($config['session']=='1')
|
|
|
|
{
|
|
|
|
$db = new bdd();
|
|
|
|
$db->connexion();
|
|
|
|
$db->db();
|
2008-11-18 11:00:00 +00:00
|
|
|
#$db->control($config['db_prefix']."sessions");
|
2008-11-17 11:00:00 +00:00
|
|
|
|
|
|
|
$time = time()-$config['session_time'];
|
|
|
|
$table = $config['db_prefix']."sessions";
|
|
|
|
$db->query("DELETE FROM $table WHERE time < $time AND active = '1'");
|
|
|
|
|
|
|
|
$db->deconnexion();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
function new_cookie()
|
|
|
|
{
|
|
|
|
global $config;
|
|
|
|
|
|
|
|
if($config['session']=='1')
|
|
|
|
{
|
|
|
|
$db = new bdd();
|
|
|
|
$db->connexion();
|
|
|
|
$db->db();
|
|
|
|
|
|
|
|
$time = time();
|
|
|
|
$xid = random();
|
|
|
|
$sess_cookie = random();
|
|
|
|
$ip = encode_ip();
|
|
|
|
$table = $config['db_prefix']."sessions";
|
|
|
|
$db->query("INSERT INTO $table(xid,session,time,ip,var_session,level,hash,active) VALUES('$xid','$sess_cookie','$time','$ip','','1','','0') ");
|
|
|
|
$db->hash($table,"xid = '$xid'");
|
|
|
|
|
|
|
|
$this->xid = $xid;
|
|
|
|
|
|
|
|
cookie($config['session_name'],$sess_cookie);
|
|
|
|
|
|
|
|
$db->deconnexion();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
function load()
|
|
|
|
{
|
|
|
|
$this->clean();
|
|
|
|
|
|
|
|
global $config;
|
|
|
|
|
|
|
|
if($config['session']=='1')
|
|
|
|
{
|
|
|
|
|
|
|
|
if($cookie = gpc($config['session_name'],'cookie'))
|
|
|
|
{
|
|
|
|
$db = new bdd();
|
|
|
|
$db->connexion();
|
|
|
|
$db->db();
|
|
|
|
|
|
|
|
$db->escape($cookie);
|
|
|
|
|
|
|
|
$table = $config['db_prefix']."sessions";
|
|
|
|
$query = $db->unique_query("SELECT * FROM $table WHERE session='$cookie' AND active='1'");
|
|
|
|
|
|
|
|
if($db->num_rows == 1 && $query['ip'] == encode_ip())
|
|
|
|
{
|
|
|
|
$time = time();
|
|
|
|
$xid = $query['xid'];
|
|
|
|
$db->query("UPDATE $table SET time='$time' WHERE xid='$xid'");
|
|
|
|
|
|
|
|
$this->xid = $xid;
|
|
|
|
$this->level = $query['level'];
|
|
|
|
$this->values = unserialize($query['var_session']);
|
|
|
|
|
|
|
|
cookie($config['session_name'],gpc($config['session_name'],'cookie'));
|
|
|
|
}
|
|
|
|
else $this->new_cookie();
|
|
|
|
|
|
|
|
$db->deconnexion();
|
|
|
|
}
|
|
|
|
else $this->new_cookie();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
function put()
|
|
|
|
{
|
|
|
|
global $config;
|
|
|
|
|
|
|
|
if($config['session']=='1')
|
|
|
|
{
|
|
|
|
$db = new bdd();
|
|
|
|
$db->connexion();
|
|
|
|
$db->db();
|
|
|
|
|
|
|
|
$time = time();
|
|
|
|
|
|
|
|
$var_session = serialize($this->values);
|
|
|
|
|
|
|
|
$db->escape($var_session);
|
|
|
|
|
|
|
|
$xid = $this->xid;
|
|
|
|
|
|
|
|
$table = $config['db_prefix']."sessions";
|
|
|
|
$db->query("UPDATE $table SET time='$time', var_session='$var_session' WHERE xid='$xid'");
|
|
|
|
$db->hash($table,"xid = '$xid'");
|
|
|
|
|
|
|
|
$db->deconnexion();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
?>
|