Make WordPress Core

Ticket #2800: 2800.diff

File 2800.diff, 1.4 KB (added by robmiller, 20 years ago)
  • functions.php

     
    10511051        echo '<input type="hidden" name="_wpnonce" value="' . wp_create_nonce($action) . '" />';
    10521052}
    10531053
     1054function wp_nonce_field($action = -1) {
     1055        echo '<input type="hidden" name="_wpnonce" value="' . wp_create_nonce($action) . '" />';
     1056        wp_referer_field();
     1057}
     1058
     1059function wp_referer_field() {
     1060        echo '<input type="hidden" name="_wphttp_referer" value="'. wp_specialchars(stripslashes($_SERVER['REQUEST_URI'])) . '" />';
     1061}
     1062
    10541063function wp_mkdir_p($target) {
    10551064        // from php.net/mkdir user contributed notes
    10561065        if (file_exists($target)) {
  • pluggable-functions.php

     
    231231function check_admin_referer($action = -1) {
    232232        global $pagenow, $menu, $submenu, $parent_file, $submenu_file;;
    233233        $adminurl = strtolower(get_settings('siteurl')).'/wp-admin';
    234         $referer = strtolower($_SERVER['HTTP_REFERER']);
     234        $referer = (empty($_POST['_wphttp_referer'])) ? strtolower($_SERVER['HTTP_REFERER']) : strtolower($_POST['wp_http_referer']);
    235235        if ( !wp_verify_nonce($_REQUEST['_wpnonce'], $action) &&
    236236                !(-1 == $action && strstr($referer, $adminurl)) ) {
    237237                if ( $referer )