connect(); return $_SERVER['Session_DB']->Connected(); } function sess_close(){ $_SERVER['Session_DB']->disconnect(); return (!$_SERVER['Session_DB']->Connected()); } function sess_read($key){ $_SERVER['Session_DB']->Query('UPDATE Sessions SET Expiry="' . (time() + $_SERVER['Session_MaxLife']) . '" WHERE SessionID="' . $key . '" AND Expiry >= "' . time() . '"'); $Value = $_SERVER['Session_DB']->oQuery('SELECT Value FROM Sessions WHERE SessionID = "' . $key . '" AND Expiry >= ' . time()); if ($Value) return $Value; else return ''; } function sess_write($key, $val){ $Expiry = time() + $_SERVER['Session_MaxLife']; $Value = addslashes($val); if (!$qid = $_SERVER['Session_DB']->Query('INSERT INTO Sessions VALUES ("' . $key . '", ' . $Expiry . ', "' . $Value . '")')) $qid = $_SERVER['Session_DB']->Query('UPDATE Sessions SET Expiry = ' . $Expiry . ', Value = "' . $Value . '" WHERE SessionID = "' . $key . '" AND Expiry > ' . time()); return $qid; } function sess_destroy($key){ return $_SERVER['Session_DB']->Query('DELETE FROM Sessions WHERE SessionID = "' . $key . '"'); } function sess_gc($maxlifetime){ return $_SERVER['Session_DB']->Query('DELETE FROM Sessions WHERE Expiry < ' . time()); } $_SERVER['Session_MaxLife'] = get_cfg_var('session.gc_maxlifetime'); ini_set('session.save_handler', 'user'); ini_set('arg_separator.output' , '&'); session_set_save_handler('sess_open', 'sess_close', 'sess_read', 'sess_write', 'sess_destroy', 'sess_gc'); session_start(); foreach ($_SESSION as $key=>$value) if (is_string($value)) $_SESSION[$key] = trim($value); function murder_session(){ // die('Attempted to murder session. dunno why.'); session_destroy(); unset($_SESSION); } ?>