<?phpini_set ('
error_reporting
',E_ALL);
ini_set
('display_errors',TRUE);
class
session{
const
db_host = '127.0.0.1';
const
db_user = 'root';
const
db_password ='';
const
db_name = 'test';
const
db_table = 'tbl_session';
private
$lifetime
;
private
$dbHandle
;
function
open(
$path
,
$id
){
$con
= @mysql_connect(self::db_host,self::db_user,self::db_password);
$sel
= @mysql_select_db(self::db_name,
$con
);
$this
->lifetime = get_cfg_var(
"session.gc_maxlifetime"
);
$this
->dbHandle =
$con
;
if
(!
$con
|| !
$sel
)
return
false;
return
true; }
function
close(){
$this
->gc(
$this
->lifetime);
return
@mysql_close(
$this
->dbHandle);}
function
read(
$id
){
$rs
= @mysql_query(
"select session_data data from "
.self::db_table.
" where session_expires dbHandle); $row = @mysql_fetch_assoc($rs); return $row?$row['data']:'';}function write($id,$data){ $newEXP = time()+ ini_get("
session.gc_maxlifetime
"); $sel = mysql_query("
select * from
".self::db_table."
where session_id=
'".$id."'
",$this->dbHandle); if(mysql_affected_rows($this->dbHandle)){ $rs = @mysql_query("
update
".self::db_table."
set session_data =
'".$data."'
, session_expires =
'".$newEXP."'
WHERE session_id =
'".$id."'
",$this->dbHandle); if(@mysql_affected_rows($this->dbHandle)) return true; }else{ $rs = @mysql_query("
insert into
".self::db_table."
(session_id,session_data,session_expires)values(
'".$id."'
,
'".$data."'
,
'".$newEXP."'
)
",$this->dbHandle); if(@mysql_affected_rows($rs)) return true; } return false;}function destroy($id){ @mysql_query("
delete
from
".self::db_table."
where session_id =
'".$id."'
",$this->dbHandle);}function gc($lifetime){ @mysql_query("
delete
from
".self::db_table."
where sessoin_expires >
'".time()."'
",
$this
->dbHandle);}}
$session
=
new
session();session_set_save_handler(
array
(&
$session
,
'open'
),
array
(&
$session
,
'close'
),
array
(&
$session
,
'read'
),
array
(&
$session
,
'write'
),
array
(&
$session
,
'destroy'
),
array
(&
$session
,
'gc'
));session_start();