Make WordPress Core


Ignore:
Timestamp:
09/25/2006 02:09:08 AM (20 years ago)
Author:
ryan
Message:

Make those chars feel special.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2.0/wp-admin/options.php

    r3909 r4229  
    2525        die ( __('Cheatin’ uh?') );
    2626
     27function sanitize_option($option, $value) {
     28
     29        switch ($option) {
     30                case 'admin_email':
     31                        $value = sanitize_email($value);
     32                        break;
     33
     34                case 'default_post_edit_rows':
     35                case 'mailserver_port':
     36                case 'comment_max_links':
     37                        $value = abs((int) $value);
     38                        break;
     39
     40                case 'posts_per_page':
     41                case 'posts_per_rss':
     42                        $value = (int) $value;
     43                        if ( empty($value) ) $value = 1;
     44                        if ( $value < -1 ) $value = abs($value);
     45                        break;
     46
     47                case 'default_ping_status':
     48                case 'default_comment_status':
     49                        // Options that if not there have 0 value but need to be something like "closed"
     50                        if ( $value == '0' || $value == '')
     51                                $value = 'closed';
     52                        break;
     53
     54                case 'blogdescription':
     55                case 'blogname':
     56                        if (current_user_can('unfiltered_html') == false)
     57                                $value = wp_filter_post_kses( $value );
     58                        break;
     59
     60                case 'blog_charset':
     61                        $value = preg_replace('/[^a-zA-Z0-9_-]/', '', $value);
     62                        break;
     63
     64                case 'date_format':
     65                case 'time_format':
     66                case 'mailserver_url':
     67                case 'mailserver_login':
     68                case 'mailserver_pass':
     69                case 'ping_sites':
     70                case 'upload_path':
     71                        $value = strip_tags($value);
     72                        $value = wp_filter_kses($value);
     73                        break;
     74
     75                case 'gmt_offset':
     76                        $value = preg_replace('/[^0-9:.-]/', '', $value);
     77                        break;
     78
     79                case 'siteurl':
     80                case 'home':
     81                        $value = clean_url($value);
     82                        break;
     83        }
     84
     85        return $value; 
     86}
     87
    2788switch($action) {
    2889
    … …  
    44105        $old_home = get_settings('home');
    45106
    46         // HACK
    47         // Options that if not there have 0 value but need to be something like "closed"
    48         $nonbools = array('default_ping_status', 'default_comment_status');
    49107        if ($options) {
    50108                foreach ($options as $option) {
    51109                        $option = trim($option);
    52110                        $value = trim(stripslashes($_POST[$option]));
    53                                 if( in_array($option, $nonbools) && ( $value == '0' || $value == '') )
    54                                 $value = 'closed';
    55                        
    56                         if( $option == 'blogdescription' || $option == 'blogname' )
    57                                 if (current_user_can('unfiltered_html') == false)
    58                                         $value = wp_filter_post_kses( $value );
     111                        $value = sanitize_option($option, $value);
    59112                       
    60113                        if (update_option($option, $value) ) {
Note: See TracChangeset for help on using the changeset viewer.