if (empty($site_timezone) or !empty($site_timezone) and (in_array($site_timezone, $timezone_array) or $site_timezone == 'byCountry')) { $array_config_global['site_timezone'] = $site_timezone; } $my_domains = $nv_Request->get_title('my_domains', 'post', ''); $array_config_global['my_domains'] = array(NV_SERVER_NAME); if (!empty($my_domains)) { $my_domains = array_map('trim', explode(',', $my_domains)); foreach ($my_domains as $dm) { $dm = preg_replace('/^(http|https|ftp|gopher)\\:\\/\\//', '', $dm); $dm = preg_replace('/^([^\\/]+)\\/*(.*)$/', '\\1', $dm); $_p = ''; if (preg_match('/(.*)\\:([0-9]+)$/', $dm, $m)) { $dm = $m[1]; $_p = ':' . $m[2]; } $dm = nv_check_domain(nv_strtolower($dm)); if (!empty($dm)) { $array_config_global['my_domains'][] = $dm . $_p; } } } $array_config_global['my_domains'] = array_unique($array_config_global['my_domains']); $array_config_global['my_domains'] = implode(',', $array_config_global['my_domains']); $array_config_global['ssl_https'] = $nv_Request->get_int('ssl_https', 'post'); $array_config_global['gzip_method'] = $nv_Request->get_int('gzip_method', 'post'); $array_config_global['lang_multi'] = $nv_Request->get_int('lang_multi', 'post'); $array_config_global['optActive'] = $nv_Request->get_int('optActive', 'post'); $array_config_global['notification_active'] = $nv_Request->get_int('notification_active', 'post'); $array_config_global['notification_autodel'] = $nv_Request->get_int('notification_autodel', 'post', 15); if ($array_config_global['notification_active'] != $global_config['notification_active']) { $db->query('UPDATE ' . $db_config['dbsystem'] . '.' . NV_CRONJOBS_GLOBALTABLE . ' SET act=' . $array_config_global['notification_active'] . ', last_time=' . NV_CURRENTTIME . ', last_result=0 WHERE run_func="cron_notification_autodel"');
$array_config_global['error_set_logs'] = $nv_Request->get_int('error_set_logs', 'post', 0); $error_send_email = nv_substr($nv_Request->get_title('error_send_email', 'post', '', 1), 0, 255); if (nv_check_valid_email($error_send_email) == '') { $array_config_global['error_send_email'] = $error_send_email; } $array_config_global['cdn_url'] = ''; $cdn_url = rtrim($nv_Request->get_string('cdn_url', 'post'), '/'); if (!empty($cdn_url)) { $cdn_url = preg_replace('/^(http|https)\\:\\/\\//', '', $cdn_url); $cdn_url = preg_replace('/^([^\\/]+)\\/*(.*)$/', '\\1', $cdn_url); $_p = ''; if (preg_match('/(.*)\\:([0-9]+)$/', $cdn_url, $m)) { $cdn_url = $m[1]; $_p = ':' . $m[2]; } $cdn_url = nv_check_domain(nv_strtolower($cdn_url)); if (!empty($cdn_url)) { $array_config_global['cdn_url'] = $cdn_url . $_p; } } $sth = $db->prepare("UPDATE " . NV_CONFIG_GLOBALTABLE . " SET config_value = :config_value WHERE lang = 'sys' AND module = 'global' AND config_name = :config_name"); foreach ($array_config_global as $config_name => $config_value) { $sth->bindParam(':config_name', $config_name, PDO::PARAM_STR, 30); $sth->bindParam(':config_value', $config_value, PDO::PARAM_STR); $sth->execute(); } nv_save_file_config_global(); $array_config_rewrite = array('rewrite_optional' => $array_config_global['rewrite_optional'], 'rewrite_endurl' => $global_config['rewrite_endurl'], 'rewrite_exturl' => $global_config['rewrite_exturl'], 'rewrite_op_mod' => $array_config_global['rewrite_op_mod'], 'ssl_https' => $array_config_global['ssl_https']); $rewrite = nv_rewrite_change($array_config_rewrite); if (empty($rewrite[0])) { $errormess .= sprintf($lang_module['err_writable'], $rewrite[1]);
/** * nv_is_url() * * @param string $url * @return */ function nv_is_url($url) { if (!preg_match('/^(http|https|ftp|gopher)\\:\\/\\//', $url)) { return false; } $url = nv_strtolower($url); if (!($parts = @parse_url($url))) { return false; } $domain = isset($parts['host']) ? nv_check_domain($parts['host']) : ''; if (empty($domain)) { return false; } if (isset($parts['user']) and !preg_match('/^([0-9a-z\\-]|[\\_])*$/', $parts['user'])) { return false; } if (isset($parts['pass']) and !preg_match('/^([0-9a-z\\-]|[\\_])*$/', $parts['pass'])) { return false; } if (isset($parts['path']) and !preg_match('/^[0-9A-Za-z\\/\\_\\.\\@\\~\\-\\%\\s]*$/', $parts['path'])) { return false; } if (isset($parts['query']) and !preg_match('/^[0-9a-z\\-\\_\\/\\?\\&\\=\\#\\.\\,\\;\\%\\s]*$/', $parts['query'])) { return false; } return true; }