Make WordPress Core


Ignore:
Timestamp:
09/25/2006 02:09:08 AM (19 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.