Make WordPress Core


Ignore:
Timestamp:
08/24/2006 10:33:16 PM (20 years ago)
Author:
ryan
Message:

Make those chars feel special.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/wp-admin/options.php

    r4006 r4112  
    1010if ( !current_user_can('manage_options') )
    1111        wp_die(__('Cheatin’ uh?'));
     12
     13function sanitize_option($option, $value) {
     14
     15        switch ($option) {
     16                case 'admin_email':
     17                        $value = sanitize_email($value);
     18                        break;
     19
     20                case 'default_post_edit_rows':
     21                case 'mailserver_port':
     22                case 'comment_max_links':
     23                        $value = abs((int) $value);
     24                        break;
     25
     26                case 'posts_per_page':
     27                case 'posts_per_rss':
     28                        $value = (int) $value;
     29                        if ( empty($value) ) $value = 1;
     30                        if ( $value < -1 ) $value = abs($value);
     31                        break;
     32
     33                case 'default_ping_status':
     34                case 'default_comment_status':
     35                        // Options that if not there have 0 value but need to be something like "closed"
     36                        if ( $value == '0' || $value == '')
     37                                $value = 'closed';
     38                        break;
     39
     40                case 'blogdescription':
     41                case 'blogname':
     42                        if (current_user_can('unfiltered_html') == false)
     43                                $value = wp_filter_post_kses( $value );
     44                        break;
     45
     46                case 'blog_charset':
     47                        $value = preg_replace('/[^a-zA-Z0-9_-]/', '', $value);
     48                        break;
     49
     50                case 'date_format':
     51                case 'time_format':
     52                case 'mailserver_url':
     53                case 'mailserver_login':
     54                case 'mailserver_pass':
     55                case 'ping_sites':
     56                case 'upload_path':
     57                        $value = strip_tags($value);
     58                        $value = wp_filter_kses($value);
     59                        break;
     60
     61                case 'gmt_offset':
     62                        $value = preg_replace('/[^0-9:.-]/', '', $value);
     63                        break;
     64
     65                case 'siteurl':
     66                case 'home':
     67                        $value = clean_url($value);
     68                        break;
     69        }
     70
     71        return $value; 
     72}
    1273
    1374switch($action) {
     
    3091        $old_home = get_settings('home');
    3192
    32         // HACK
    33         // Options that if not there have 0 value but need to be something like "closed"
    34         $nonbools = array('default_ping_status', 'default_comment_status');
    3593        if ($options) {
    3694                foreach ($options as $option) {
    3795                        $option = trim($option);
    3896                        $value = trim(stripslashes($_POST[$option]));
    39                                 if( in_array($option, $nonbools) && ( $value == '0' || $value == '') )
    40                                 $value = 'closed';
    41 
    42                         if( $option == 'blogdescription' || $option == 'blogname' )
    43                                 if (current_user_can('unfiltered_html') == false)
    44                                         $value = wp_filter_post_kses( $value );
     97                        $value = sanitize_option($option, $value);
    4598
    4699                        if (update_option($option, $value) ) {
Note: See TracChangeset for help on using the changeset viewer.