<?
define("SESSION_TABLE", ""); //the table your session data will be stored in
define("SESSION_LIFETIME",ini_get("session.gc_maxlifetime")); //the lifetime
define("HOSTNAME", ""); //the hostname of your db server
define("DBUSERNAME",""); //the user for db access
define("DBPASSWORD",""); //user password
define("DATABASE",""); //the database used for session storage
$sess_dbc= "";
function session_open ($save_path, $session_name) {
global $sess_dbc;
$sess_dbc = mysql_pconnect(HOSTNAME, DBUSERNAME, DBPASSWORD);
$sess_db = mysql_select_db(DATABASE, $sess_dbc);
return (true);
}
function session_close () {
//nothing to do
return true;
}
function session_read ($session_id) {
global $sess_dbc;
$sql = "
SELECT
session_values
FROM ".
SESSION_TABLE ."
WHERE
session_key = '$session_id' ";
$result = mysql_query($sql, $sess_dbc);
if(mysql_num_rows($result) > 0):
//session exists
extract ($row);
return mysql_result($result,0,0);
else:
return "";
endif;
}
function session_write($session_id, $values) {
global $sess_dbc;
$session_expiry = time() + SESSION_LIFETIME;
$values = mysql_escape_string($values);
$sql = "
Replace
into ".SESSION_TABLE."
set
session_expire = '$session_expiry'
session_key = '$session_id'
session_values = '".mysql_escape_string($values)."'";
$res = mysql_query($sql, $sess_dbc);
return $res;
}
function session__destroy($session_id){ //note double underscore
global $sess_dbc;
$res = mysql_query("
Delete
from ".SESSION_TABLE ."
where
session_key = '$session_id'
", $sess_dbc);
return ($res);
}
function session_garbage_collection($lifetime) {
global $sess_dbc;
$res = mysql_query("
Delete
from ".SESSION_TABLE ."
where
session_expiry < '".time() ."'",
$sess_dbc);
return mysql_affected_rows($sess_dbc);
}
session_set_save_handler(
"session_open",
"session_close",
"session_read",
"session_write",
"session__destroy",
"session_garbage_collection");
session_start();
?>