db = $db; $this->session_factory = $session_factory; } function extract_current_page ( $root_path, $php_self, $query_string, $request_uri ) { $this->session_factory->get_session($this->db); global $request; $request->overwrite('PHP_SELF', $php_self, phpbb_request_interface::SERVER); $request->overwrite('QUERY_STRING', $query_string, phpbb_request_interface::SERVER); $request->overwrite('REQUEST_URI', $request_uri, phpbb_request_interface::SERVER); return phpbb_session::extract_current_page($root_path); } function extract_current_hostname ( $host, $server_name_config, $cookie_domain_config ) { $session = $this->session_factory->get_session($this->db); global $config, $request; $config['server_name'] = $server_name_config; $config['cookie_domain'] = $cookie_domain_config; $request->overwrite('SERVER_NAME', $host, phpbb_request_interface::SERVER); $request->overwrite('Host', $host, phpbb_request_interface::SERVER); // Note: There is a php_uname fallthrough in this method // that this function doesn't override return $session->extract_current_hostname(); } /** This function has a *lot* of dependencies, so instead of naming them all, * just ask for overrides */ function session_begin ( $update_session_page = true, $config_overrides = array(), $request_overrides = array() ) { $session = $this->session_factory->get_session($this->db); global $config, $request; $request->merge(phpbb_request_interface::SERVER, $request_overrides); $config = array_merge($config, $config_overrides); return $session->session_begin($update_session_page); } function session_create ( $user_id = false, $set_admin = false, $persist_login = false, $viewonline = true, array $config_overrides = array(), $user_agent, $ip_address, array $bot_overrides = array(), $uri_sid = "" ) { $this->session_factory->merge_config_data($config_overrides); // Bots $this->session_factory->merge_cache_data(array('_bots' => $bot_overrides)); global $request; $session = $this->session_factory->get_session($this->db); $session->browser = $user_agent; $session->ip = $ip_address; // Uri sid if ($uri_sid) { $_GET['sid'] = $uri_sid; } $session->session_create($user_id, $set_admin, $persist_login, $viewonline); return $session; } function validate_referer( $check_script_path, $referer, $host, $force_server_vars, $server_port, $server_name, $root_script_path ) { $session = $this->session_factory->get_session($this->db); global $config, $request; $session->referer = $referer; $session->page['root_script_path'] = $root_script_path; $session->host = $host; $config['force_server_vars'] = $force_server_vars; $config['server_name'] = $server_name; $request->overwrite('SERVER_PORT', $server_port, phpbb_request_interface::SERVER); return $session->validate_referer($check_script_path); } }