Auszug aus meiner Session Klasse.
Hinweis! Bei $MYSQL handelt es sich um eine MySQL Klasse von mir. Muß also an Deine Bedürfnisse angepaßt werden!
Code:
<?php
class SESSION
{
// -------------------------------------------
// - -
// - Sessions with MySQL -
// - -
// -------------------------------------------
/*
MySQL 3.23.x
CREATE TABLE `sessions` (
`sesskey` varchar(32) NOT NULL default '',
`sessvalue` text NOT NULL,
`modify` timestamp NOT NULL default '0000-00-00 00:00:00',
PRIMARY KEY (`sesskey`)
) TYPE=MyISAM;
*/
/*--------------------------------------------------------------------------------------------------------------------*/
Function _OPEN($save_path, $session_name)
{
Return (true);
}
/*--------------------------------------------------------------------------------------------------------------------*/
Function _CLOSE()
{
Return (true);
}
/*--------------------------------------------------------------------------------------------------------------------*/
Function _READ($id)
{
$MYSQL = $GLOBALS["MYSQL"];
$MYSQL->QUERY("SELECT * FROM sessions WHERE sesskey='$id'");
if($MYSQL->NUM_ROWS>0)
{
Return (stripslashes(mysql_result($MYSQL->QUERY_RESOURCE,0,"sessvalue")));
} else {
Return ("");
}
Return ("");
}
/*--------------------------------------------------------------------------------------------------------------------*/
Function _WRITE($id, $sess_data)
{
$MYSQL = $GLOBALS["MYSQL"];
$MYSQL->QUERY("SELECT * FROM sessions WHERE sesskey='$id'");
if($MYSQL->NUM_ROWS>0)
{
$MYSQL->QUERY("UPDATE sessions SET sessvalue='".addslashes($sess_data)."', modify=NOW() WHERE sesskey='$id'");
} else {
$MYSQL->QUERY("INSERT INTO sessions (sesskey, sessvalue, modify) VALUES ('$id','".addslashes($sess_data)."',NOW())");
}
Return (true);
}
/*--------------------------------------------------------------------------------------------------------------------*/
Function _DESTROY($id)
{
$MYSQL = $GLOBALS["MYSQL"];
$MYSQL->QUERY("DELETE FROM sessions WHERE sesskey='$id'");
Return (true);
}
/*--------------------------------------------------------------------------------------------------------------------*/
Function _GC($maxlifetime)
{
$MYSQL = $GLOBALS["MYSQL"];
$MYSQL->QUERY("DELETE FROM sessions WHERE modify<FROM_UNIXTIME(UNIX_TIMESTAMP()-$maxlifetime)");
Return (true);
}
/*--------------------------------------------------------------------------------------------------------------------*/
}
?>
Aktiviert wird das ganze per
Code:
<?php
$SESSCLASS = new SESSION;
session_set_save_handler(
array(&$SESSCLASS, '_OPEN'),
array(&$SESSCLASS, '_CLOSE'),
array(&$SESSCLASS, '_READ'),
array(&$SESSCLASS, '_WRITE'),
array(&$SESSCLASS, '_DESTROY'),
array(&$SESSCLASS, '_GC'));
?>