ho scaricato la classe e mi sembra valida , ma come devo fare per la connessione ?
Codice PHP:
session_set_save_handler (array(&$session, 'open'),
array(&$session, 'close'),
array(&$session, 'read'),
array(&$session, 'write'),
array(&$session, 'destroy'),
array(&$session, 'gc'));
class session{
var $session_limit = 300; //life of sessions in seconds
function session(&$db){
//set db handler
$this->db = $db;
}
/* Open session, if you have your own db connection
code, put it in here! */
function open($path, $name) {
if (isset($this->db)) return TRUE;
else return FALSE;
}
/* Close session */
function close() {
/* This is used for a manual call of the
session gc function */
$this->gc(0);
return TRUE;
}
/* Read session data from database */
function read($ses_id) {
$session_sql = "SELECT * FROM sessions WHERE ses_id = '$ses_id'";
$session_res = $this->db->getRow($session_sql);
if (!$session_res) {
return '';
}
if ($session_res) {
$ses_data = $session_res["ses_value"];
return $ses_data;
} else {
return '';
}
}
/* Write new data to database */
function write($ses_id, $data) {
$session_sql = "UPDATE sessions SET ses_time='" . time()
. "', ses_value='$data' WHERE ses_id='$ses_id'";
$session_res = $this->db->query($session_sql);
if (!$session_res) {
return FALSE;
}
if ($this->db->affectedRows() > 0) {
return TRUE;
}
$session_sql = "INSERT INTO sessions (ses_id, ses_time, ses_start, ses_value)"
. " VALUES ('$ses_id', '" . time()
. "', '" . time() . "', '$data')";
$session_res = $this->db->query($session_sql);
if (!$session_res) {
return FALSE;
} else {
return TRUE;
}
}
/* Destroy session record in database */
function destroy($ses_id) {
$session_sql = "DELETE FROM sessions WHERE ses_id = '$ses_id'";
$session_res = $this->db->query($session_sql);
if (!$session_res) {
return FALSE;
} else {
return TRUE;
}
}
// Garbage collection removes old sessions
function gc($life) {
$ses_life = time() - $this->session_limit;
$session_sql = "DELETE FROM sessions WHERE ses_time < $ses_life";
$session_res = $this->db->query($session_sql);
if (!$session_res) {
return FALSE;
} else {
return TRUE;
}
}
// Users online
function users() {
$users_sql = "SELECT COUNT(ses_id) FROM sessions";
$users_res = $this->db->getOne($users_sql);
if (!$users_res) {
return NULL;
} else {
return $users_res;
}
}
}
io uso la connessione cosi:
Codice PHP:
class DB{
var $db_host ='localhost';
var $db_user ='root';
var $db_pass ='maurizio';
var $db_name ='diva';
var $SMARTY_LIBRARY ='';
//PHP5 Constructor
function __construct() {
global $db_host,$db_user,$db_pass,$db_name;
$this->host = $db_host;
$this->user = $db_user;
$this->pass = $db_pass;
$this->name = $db_name;
}
//PHP4 Constructor
function database() {
global $db_host,$db_user,$db_pass,$db_name;
$this->host = $db_host;
$this->user = $db_user;
$this->pass = $db_pass;
$this->name = $db_name;
}
function connect()
{
@mysql_connect($this->db_host,$this->db_user,$this->db_pass)or die("non riesco a connettermi".mysql_error());
@mysql_select_db($this->db_name)or die("non riesco selezionare il database");
}
function disconnect()
{
if( !mysql_close()){
die("Could not close DB");
}
}
}