db = new db; } function open ($save_path, $session_name) { return true; } function close () { if (!empty($this->session_array)) { $result = $this->gc(ini_get('session.gc_maxlifetime')); return $result; } return false; } function read ($session_id) { $rec = $this->db->queryOneRecord("SELECT * FROM sys_session WHERE session_id = '".$this->db->quote($session_id)."'"); if (is_array($rec)) { $this->session_array = $rec; return $rec['session_data']; } else { return ''; } } function write ($session_id, $session_data) { if (!empty($this->session_array) && $this->session_array['session_id'] != $session_id) { $this->session_array = array(); } if ($this->session_array['session_id'] == '') { $session_id = $this->db->quote($session_id); $date_created = date('Y-m-d H:i:s'); $last_updated = date('Y-m-d H:i:s'); $session_data = $this->db->quote($session_data); $sql = "INSERT INTO sys_session (session_id,date_created,last_updated,session_data) VALUES ('$session_id','$date_created','$last_updated','$session_data')"; $this->db->query($sql); } else { $session_id = $this->db->quote($session_id); $last_updated = date('Y-m-d H:i:s'); $session_data = $this->db->quote($session_data); $sql = "UPDATE sys_session SET last_updated = '$last_updated', session_data = '$session_data' WHERE session_id = '$session_id'"; $this->db->query($sql); } return true; } function destroy ($session_id) { $session_id = $this->db->quote($session_id); $sql = "DELETE FROM sys_session WHERE session_id = '$session_id'"; $this->db->query($sql); return true; } function gc ($max_lifetime) { $real_now = date('Y-m-d H:i:s'); $dt1 = strtotime("$real_now -$max_lifetime seconds"); $dt2 = date('Y-m-d H:i:s', $dt1); $sql = "DELETE FROM sys_session WHERE last_updated < '$dt2'"; $this->db->query($sql); return true; } function __destruct () { @session_write_close(); } } ?>