Make WordPress Core


Ignore:
Timestamp:
01/20/2005 04:56:24 AM (21 years ago)
Author:
rboren
Message:

wp_setcookie() and wp_clearcookie(). Set cookies for both siteurl and home if they are not the same. Update cookies whenever home or siteurl change.

File:
1 edited

Legend:

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

    r2067 r2107  
    2828
    2929case 'update':
    30     $any_changed = 0;
     30    $any_changed = 0;
    3131   
    3232    if (!$_POST['page_options']) {
     
    4040
    4141    $options = $wpdb->get_results("SELECT $wpdb->options.option_id, option_name, option_type, option_value, option_admin_level FROM $wpdb->options WHERE option_name IN ($option_names)");
     42
     43        // Save for later.
     44        $old_siteurl = get_settings('siteurl');
     45        $old_home = get_settings('home');
    4246
    4347// HACK
     
    5761                }
    5862                if( in_array($option->option_name, $nonbools) && $new_val == '0' ) $new_val = 'closed';
    59                 if ($new_val !== $old_val)
     63                if ($new_val !== $old_val) {
    6064                    $result = $wpdb->query("UPDATE $wpdb->options SET option_value = '$new_val' WHERE option_name = '$option->option_name'");
     65                                        $any_changed++;
     66                                }
    6167            }
    6268        }
     
    6672   
    6773    if ($any_changed) {
    68         $message = sprintf(__('%d setting(s) saved... '), $any_changed);
     74            // If siteurl or home changed, reset cookies.
     75            if ( get_settings('siteurl') != $old_siteurl || get_settings('home') != $old_home ) {
     76                // Get currently logged in user and password.
     77                get_currentuserinfo();
     78                // Clear cookies for old paths.
     79                wp_clearcookie();
     80                // Set cookies for new paths.
     81                wp_setcookie($user_login, $user_pass_md5, true, get_settings('home'), get_settings('siteurl'));
     82            }
     83
     84            //$message = sprintf(__('%d setting(s) saved... '), $any_changed);
    6985    }
    7086   
    71         //$referred = str_replace('?updated=true' , '', $_SERVER['HTTP_REFERER']);
    7287        $referred = remove_query_arg('updated' , $_SERVER['HTTP_REFERER']);
    73         //$goback = str_replace('?updated=true', '', $_SERVER['HTTP_REFERER']) . '?updated=true';
    7488        $goback = add_query_arg('updated', 'true', $_SERVER['HTTP_REFERER']);
    75     $goback = preg_replace('|[^a-z0-9-~+_.?#=&;,/:]|i', '', $goback);
     89        $goback = preg_replace('|[^a-z0-9-~+_.?#=&;,/:]|i', '', $goback);
    7690    header('Location: ' . $goback);
    7791    break;
Note: See TracChangeset for help on using the changeset viewer.