X-Git-Url: https://scripts.mit.edu/gitweb/autoinstalls/wordpress.git/blobdiff_plain/ff81ee6e8304a1982a3ec4f5b134764a29d502cf..022dfbbbe3215917d84708eb09acca93b21ae9e0:/wp-admin/options.php diff --git a/wp-admin/options.php b/wp-admin/options.php index de5999c6..bd8b2b0d 100644 --- a/wp-admin/options.php +++ b/wp-admin/options.php @@ -24,16 +24,78 @@ for ($i=0; $i $value) { - $options[] = $key; + if ( !$_POST['page_options'] ) { + foreach ( (array) $_POST as $key => $value) { + if ( !in_array($key, array('_wpnonce', '_wp_http_referer')) ) + $options[] = $key; } } else { $options = explode(',', stripslashes($_POST['page_options'])); @@ -43,19 +105,11 @@ case 'update': $old_siteurl = get_settings('siteurl'); $old_home = get_settings('home'); - // HACK - // Options that if not there have 0 value but need to be something like "closed" - $nonbools = array('default_ping_status', 'default_comment_status'); if ($options) { foreach ($options as $option) { $option = trim($option); $value = trim(stripslashes($_POST[$option])); - if( in_array($option, $nonbools) && ( $value == '0' || $value == '') ) - $value = 'closed'; - - if( $option == 'blogdescription' || $option == 'blogname' ) - if (current_user_can('unfiltered_html') == false) - $value = wp_filter_post_kses( $value ); + $value = sanitize_option($option, $value); if (update_option($option, $value) ) { $any_changed++; @@ -68,8 +122,6 @@ case 'update': if ( get_settings('siteurl') != $old_siteurl || get_settings('home') != $old_home ) { // If home changed, write rewrite rules to new location. $wp_rewrite->flush_rules(); - // Get currently logged in user and password. - get_currentuserinfo(); // Clear cookies for old paths. wp_clearcookie(); // Set cookies for new paths. @@ -79,8 +131,8 @@ case 'update': //$message = sprintf(__('%d setting(s) saved... '), $any_changed); } - $referred = remove_query_arg('updated' , $_SERVER['HTTP_REFERER']); - $goback = add_query_arg('updated', 'true', $_SERVER['HTTP_REFERER']); + $referred = remove_query_arg('updated' , wp_get_referer()); + $goback = add_query_arg('updated', 'true', wp_get_referer()); $goback = preg_replace('|[^a-z0-9-~+_.?#=&;,/:]|i', '', $goback); wp_redirect($goback); break; @@ -89,25 +141,49 @@ default: include('admin-header.php'); ?>
-

-
+

+ + get_results("SELECT * FROM $wpdb->options ORDER BY option_name"); -foreach ($options as $option) : - $value = wp_specialchars($option->option_value); +foreach ( (array) $options as $option) : + $disabled = ''; + $option->option_name = attribute_escape($option->option_name); + if ( is_serialized($option->option_value) ) { + if ( is_serialized_string($option->option_value) ) { + // this is a serialized string, so we should display it + $value = maybe_unserialize($option->option_value); + $options_to_update[] = $option->option_name; + $class = 'all-options'; + } else { + $value = 'SERIALIZED DATA'; + $disabled = ' disabled="disabled"'; + $class = 'all-options disabled'; + } + } else { + $value = $option->option_value; + $options_to_update[] = $option->option_name; + $class = 'all-options'; + } echo " - +"; endforeach; ?>
"; + + if (strpos($value, "\n") !== false) echo ""; + else echo ""; + + echo " $option->option_description
-

+ +