diff --git a/phpBB/adm/style/acp_send_statistics.html b/phpBB/adm/style/acp_send_statistics.html index 573eee6fad..ce45705559 100644 --- a/phpBB/adm/style/acp_send_statistics.html +++ b/phpBB/adm/style/acp_send_statistics.html @@ -10,31 +10,33 @@ // - -
+ -

+ -
- +

+ +
+

+ -
+
{providers.NAME}
@@ -44,20 +46,22 @@ function iframeUpdated()
-
-

+

+

-
-

{L_THANKS_SEND_STATISTICS}

+ +
+

{L_THANKS_SEND_STATISTICS}

+ \ No newline at end of file diff --git a/phpBB/includes/acp/acp_send_statistics.php b/phpBB/includes/acp/acp_send_statistics.php index 1549157041..6c29b9fbb5 100644 --- a/phpBB/includes/acp/acp_send_statistics.php +++ b/phpBB/includes/acp/acp_send_statistics.php @@ -15,8 +15,8 @@ if (!defined('IN_PHPBB')) { exit; } -include($phpbb_root_path . 'includes/questionnaire/questionnaire_phpbb.' . $phpEx); +include($phpbb_root_path . 'includes/questionnaire/questionnaire.' . $phpEx); /** * @package acp @@ -34,22 +34,24 @@ class acp_send_statistics $this->tpl_name = 'acp_send_statistics'; $this->page_title = 'ACP_SEND_STATISTICS'; - $c = new Questionnaire_Data_Collector(); - $c->addDataProvider(new Questionnaire_PHP_Data_Provider()); - $c->addDataProvider(new Questionnaire_System_Data_Provider()); - $c->addDataProvider(new questionnaire_phpbb_data_provider($config)); + $collector = new phpbb_questionnaire_data_collector(); + + // Add data provider + $collector->add_data_provider(new phpbb_questionnaire_php_data_provider()); + $collector->add_data_provider(new phpbb_questionnaire_system_data_provider()); + $collector->add_data_provider(new phpbb_questionnaire_phpbb_data_provider($config)); $template->assign_vars(array( 'U_COLLECT_STATS' => $collect_url, - 'RAW_DATA' => $c->getDataForForm(), + 'RAW_DATA' => $collector->get_data_for_form(), )); - $raw = $c->getDataRaw(); + $raw = $collector->get_data_raw(); foreach ($raw as $provider => $data) { $template->assign_block_vars('providers', array( - 'NAME' => htmlentities($provider), + 'NAME' => htmlspecialchars($provider), )); foreach ($data as $key => $value) @@ -60,8 +62,8 @@ class acp_send_statistics } $template->assign_block_vars('providers.values', array( - 'KEY' => htmlentities($key), - 'VALUE' => htmlentities($value), + 'KEY' => utf8_htmlspecialchars($key), + 'VALUE' => utf8_htmlspecialchars($value), )); } } diff --git a/phpBB/includes/questionnaire/questionnaire.php b/phpBB/includes/questionnaire/questionnaire.php index 811b26cf20..42ac44d38a 100644 --- a/phpBB/includes/questionnaire/questionnaire.php +++ b/phpBB/includes/questionnaire/questionnaire.php @@ -1,152 +1,292 @@ PHP_VERSION, - 'sapi' => PHP_SAPI, - 'int_size' => defined('PHP_INT_SIZE') ? PHP_INT_SIZE : '', - 'safe_mode' => (int)ini_get('safe_mode'), - 'open_basedir' => (int)ini_get('open_basedir'), - 'memory_limit' => ini_get('memory_limit'), - 'allow_url_fopen' => (int)ini_get('allow_url_fopen'), - 'allow_url_include' => (int)ini_get('allow_url_include'), - 'file_uploads' => (int)ini_get('file_uploads'), - 'upload_max_filesize' => ini_get('upload_max_filesize'), - 'post_max_size' => ini_get('post_max_size'), - 'disable_functions' => ini_get('disable_functions'), - 'disable_classes' => ini_get('disable_classes'), - 'enable_dl' => (int)ini_get('enable_dl'), - 'magic_quotes_gpc' => (int)ini_get('magic_quotes_gpc'), - 'register_globals' => (int)ini_get('register_globals'), - 'filter.default' => ini_get('filter.default'), - 'zend.ze1_compatibility_mode' => (int)ini_get('zend.ze1_compatibility_mode'), - 'unicode.semantics' => (int)ini_get('unicode.semantics'), - 'zend_thread_safty' => (int)function_exists('zend_thread_id'), - 'extensions' => get_loaded_extensions() - ); - } -} - - -class Questionnaire_System_Data_Provider -{ - function getIdentifier() - { - return 'System'; - } - - /** - * Get data about the general system information, like OS or IP (shortened). - * - * @return array - */ - function getData() - { - // Start discovering the IPV4 server address, if available - $serverAddress = '0.0.0.0'; - if (isset($_SERVER['SERVER_ADDR'])) { - $serverAddress = $_SERVER['SERVER_ADDR']; - } - // Running on IIS? - if (isset($_SERVER['LOCAL_ADDR'])) { - $serverAddress = $_SERVER['LOCAL_ADDR']; - } - $aIPAddress = explode('.', $serverAddress); - - return array( - 'os' => PHP_OS, - 'httpd' => $_SERVER['SERVER_SOFTWARE'], - // we don't want the real IP address (for privacy policy reasons) but only - // a network address to see whether your installation is running on a private or public network. - // IANA reserved addresses for private networks (RFC 1918) are: - // - 10.0.0.0/8 - // - 172.16.0.0/12 - // - 192.168.0.0/16 - 'ip' => $aIPAddress[0].'.'.$aIPAddress[1].'.XXX.YYY' - ); - } + exit; } /** - * This class collects data which is used to create some usage statistics. - * - * The collected data is - after authorization of the administrator - submitted - * to a central server. For privacy reasons we try to collect only data which aren't private - * or don't give any information which might help to identify the user. - * - * @author Johannes Schlueter - * @copyright (c) 2007-2008 Johannes Schlueter - */ - -class Questionnaire_Data_Collector +* This class collects data which is used to create some usage statistics. +* +* The collected data is - after authorization of the administrator - submitted +* to a central server. For privacy reasons we try to collect only data which aren't private +* or don't give any information which might help to identify the user. +* +* @author Johannes Schlueter +* @copyright (c) 2007-2008 Johannes Schlueter +*/ +class phpbb_questionnaire_data_collector { - var $providers; - var $data = null; + var $providers; + var $data = null; - /** - * Constructor. - * - * @param array - * @param string - */ - function Questionnaire_Data_Collector() - { - $this->providers = array(); - } + /** + * Constructor. + * + * @param array + * @param string + */ + function phpbb_questionnaire_data_collector() + { + $this->providers = array(); + } - function addDataProvider(&$provider) - { - $this->providers[] = &$provider; - } + function add_data_provider(&$provider) + { + $this->providers[] = &$provider; + } - /** - * Get data as an array. - * - * @return array All Data - */ - function getDataRaw() - { - if (!$this->data) { - $this->collect(); - } + /** + * Get data as an array. + * + * @return array All Data + */ + function get_data_raw() + { + if (!$this->data) + { + $this->collect(); + } - return $this->data; - } + return $this->data; + } - function getDataForForm() - { - return base64_encode(serialize($this->getDataRaw())); - } + function get_data_for_form() + { + return base64_encode(serialize($this->get_data_raw())); + } - /** - * Collect info into the data property. - * - * @return void - */ - function collect() - { - foreach (array_keys($this->providers) as $key) { + /** + * Collect info into the data property. + * + * @return void + */ + function collect() + { + foreach (array_keys($this->providers) as $key) + { $provider = &$this->providers[$key]; - $this->data[$provider->getIdentifier()] = $provider->getData(); - } - } + $this->data[$provider->get_identifier()] = $provider->get_data(); + } + } } + +/** interface: get_indentifier(), get_data() */ + +/** +* Questionnaire PHP data provider +* @package phpBB3 +*/ +class phpbb_questionnaire_php_data_provider +{ + function get_identifier() + { + return 'PHP'; + } + + /** + * Get data about the PHP runtime setup. + * + * @return array + */ + function get_data() + { + return array( + 'version' => PHP_VERSION, + 'sapi' => PHP_SAPI, + 'int_size' => defined('PHP_INT_SIZE') ? PHP_INT_SIZE : '', + 'safe_mode' => (int) @ini_get('safe_mode'), + 'open_basedir' => (int) @ini_get('open_basedir'), + 'memory_limit' => @ini_get('memory_limit'), + 'allow_url_fopen' => (int) @ini_get('allow_url_fopen'), + 'allow_url_include' => (int) @ini_get('allow_url_include'), + 'file_uploads' => (int) @ini_get('file_uploads'), + 'upload_max_filesize' => @ini_get('upload_max_filesize'), + 'post_max_size' => @ini_get('post_max_size'), + 'disable_functions' => @ini_get('disable_functions'), + 'disable_classes' => @ini_get('disable_classes'), + 'enable_dl' => (int) @ini_get('enable_dl'), + 'magic_quotes_gpc' => (int) @ini_get('magic_quotes_gpc'), + 'register_globals' => (int) @ini_get('register_globals'), + 'filter.default' => @ini_get('filter.default'), + 'zend.ze1_compatibility_mode' => (int) @ini_get('zend.ze1_compatibility_mode'), + 'unicode.semantics' => (int) @ini_get('unicode.semantics'), + 'zend_thread_safty' => (int) function_exists('zend_thread_id'), + 'extensions' => get_loaded_extensions(), + ); + } +} + +/** +* Questionnaire System data provider +* @package phpBB3 +*/ +class phpbb_questionnaire_system_data_provider +{ + function get_identifier() + { + return 'System'; + } + + /** + * Get data about the general system information, like OS or IP (shortened). + * + * @return array + */ + function get_data() + { + // Start discovering the IPV4 server address, if available + $server_address = '0.0.0.0'; + + if (!empty($_SERVER['SERVER_ADDR'])) + { + $server_address = $_SERVER['SERVER_ADDR']; + } + + // Running on IIS? + if (!empty($_SERVER['LOCAL_ADDR'])) + { + $server_address = $_SERVER['LOCAL_ADDR']; + } + + $ip_address_ary = explode('.', $server_address); + + // build ip + if (!isset($ip_address_ary[0]) || !isset($ip_address_ary[1])) + { + $ip_address_ary = explode('.', '0.0.0.0'); + } + + return array( + 'os' => PHP_OS, + 'httpd' => $_SERVER['SERVER_SOFTWARE'], + // we don't want the real IP address (for privacy policy reasons) but only + // a network address to see whether your installation is running on a private or public network. + // IANA reserved addresses for private networks (RFC 1918) are: + // - 10.0.0.0/8 + // - 172.16.0.0/12 + // - 192.168.0.0/16 + 'ip' => $ip_address_ary[0] . '.' . $ip_address_ary[1] . '.XXX.YYY', + ); + } +} + +/** +* Questionnaire phpBB data provider +* @package phpBB3 +*/ +class phpbb_questionnaire_phpbb_data_provider +{ + var $config; + var $unique_id; + + /** + * Constructor. + * + * @param array $config + */ + function phpbb_questionnaire_phpbb_data_provider($config) + { + // generate a unique id if necessary + if (empty($config['questionnaire_unique_id'])) + { + $this->unique_id = unique_id(); + set_config('questionnaire_unique_id', $this->unique_id); + } + else + { + $this->unique_id = $config['questionnaire_unique_id']; + } + + $this->config = $config; + } + + /** + * Returns a string identifier for this data provider + * + * @return string "phpBB" + */ + function get_identifier() + { + return 'phpBB'; + } + + /** + * Get data about this phpBB installation. + * + * @return array Relevant anonymous config options + */ + function get_data() + { + // Exclude certain config vars + $exclude_config_vars = array( + 'avatar_gallery_path' => true, + 'avatar_path' => true, + 'avatar_salt' => true, + 'board_contact' => true, + 'board_disable_msg' => true, + 'board_email' => true, + 'board_email_sig' => true, + 'cookie_name' => true, + 'icons_path' => true, + 'icons_path' => true, + 'jab_host' => true, + 'jab_password' => true, + 'jab_port' => true, + 'jab_username' => true, + 'ldap_base_dn' => true, + 'ldap_email' => true, + 'ldap_password' => true, + 'ldap_port' => true, + 'ldap_server' => true, + 'ldap_uid' => true, + 'ldap_user' => true, + 'ldap_user_filter' => true, + 'ranks_path' => true, + 'script_path' => true, + 'server_name' => true, + 'server_port' => true, + 'server_protocol' => true, + 'site_desc' => true, + 'sitename' => true, + 'smilies_path' => true, + 'smtp_host' => true, + 'smtp_password' => true, + 'smtp_port' => true, + 'smtp_username' => true, + 'upload_icons_path' => true, + 'upload_path' => true, + 'newest_user_colour' => true, + 'newest_user_id' => true, + 'newest_username' => true, + 'rand_seed' => true, + ); + + $result = array(); + foreach ($this->config as $name => $value) + { + // Mods may add columns for storing passwords - we do not want to grab them + if (isset($exclude_config_vars[$name]) || strpos($name, 'password') !== false) + { + continue; + } + + $result['config.' . $name] = $value; + } + + return $result; + } +} + +?> \ No newline at end of file diff --git a/phpBB/includes/questionnaire/questionnaire_phpbb.php b/phpBB/includes/questionnaire/questionnaire_phpbb.php deleted file mode 100644 index 47bd931e68..0000000000 --- a/phpBB/includes/questionnaire/questionnaire_phpbb.php +++ /dev/null @@ -1,121 +0,0 @@ -unique_id = unique_id(); - set_config('questionnaire_unique_id', $this->unique_id); - } - else - { - $this->unique_id = $config['questionnaire_unique_id']; - } - - $this->config = $config; - } - - /** - * Returns a string identifier for this data provider - * - * @return string "phpBB" - */ - function getIdentifier() - { - return 'phpBB'; - } - - - /** - * Get data about this phpBB installation. - * - * @return array Relevant anonymous config options - */ - function getData() - { - - // Exclude certain config vars - $exclude_config_vars = array( - 'avatar_gallery_path' => true, - 'avatar_path' => true, - 'avatar_salt' => true, - 'board_contact' => true, - 'board_disable_msg' => true, - 'board_email' => true, - 'board_email_sig' => true, - 'cookie_name' => true, - 'icons_path' => true, - 'icons_path' => true, - 'jab_host' => true, - 'jab_password' => true, - 'jab_port' => true, - 'jab_username' => true, - 'ldap_base_dn' => true, - 'ldap_email' => true, - 'ldap_password' => true, - 'ldap_port' => true, - 'ldap_server' => true, - 'ldap_uid' => true, - 'ldap_user' => true, - 'ldap_user_filter' => true, - 'ranks_path' => true, - 'script_path' => true, - 'server_name' => true, - 'server_port' => true, - 'server_protocol' => true, - 'site_desc' => true, - 'sitename' => true, - 'smilies_path' => true, - 'smtp_host' => true, - 'smtp_password' => true, - 'smtp_port' => true, - 'smtp_username' => true, - 'upload_icons_path' => true, - 'upload_path' => true, - 'newest_user_colour' => true, - 'newest_user_id' => true, - 'newest_username' => true, - 'rand_seed' => true, - ); - - $result = array(); - foreach ($this->config as $name => $value) - { - if (!isset($exclude_config_vars[$name])) - { - $result['config.' . $name] = $value; - } - } - - return $result; - } -} \ No newline at end of file