0) { db_execute_prepared('INSERT INTO sessions (id, remote_addr, access, data, user_id, user_agent) VALUES (?, ?, ?, ?, ?, ?) ON DUPLICATE KEY UPDATE data = VALUES(data), access = VALUES(access), user_agent = VALUES(user_agent), transactions = transactions + 1', array($id, $client_addr, $access, $data, $user_id, $user_agent)); } elseif (strpos($data, 'ses_user_id') !== false) { db_execute_prepared('INSERT INTO sessions (id, remote_addr, access, data, user_agent) VALUES (?, ?, ?, ?, ?) ON DUPLICATE KEY UPDATE data = VALUES(data), access = VALUES(access), user_agent = VALUES(user_agent), transactions = transactions + 1', array($id, $client_addr, $access, $data, $user_agent)); } return true; } function cacti_db_session_destroy($id) { db_execute_prepared('DELETE FROM sessions WHERE id = ?', array($id)); return true; } function cacti_db_session_clean($max) { $old = time() - $max; db_execute_prepared('DELETE FROM sessions WHERE access < ?', array($old)); return true; } // register database session handling session_set_save_handler( 'cacti_db_session_open', 'cacti_db_session_close', 'cacti_db_session_read', 'cacti_db_session_write', 'cacti_db_session_destroy', 'cacti_db_session_clean' ); register_shutdown_function('session_write_close');