Fatal error: Cannot re-assign auto-global variable _POST

后端 未结 3 1694
迷失自我
迷失自我 2020-12-17 16:01

I can\'t get access to my WP (version3.4.2) admin. It says as mentioned above

Fatal error: Cannot re-assign auto-global variable _POST in /home/xxx/p

相关标签:
3条回答
  • 2020-12-17 16:27

    @user3450716, the only thing you need to do, as Abhik Chakraborty said, is to delete the $_POST from your function rt_check_sidebar parameters and leave the function with no parameters, like this:

    your line 540:

    function rt_check_sidebar_array($_POST){
    

    change it to:

    function rt_check_sidebar_array(){
    
    0 讨论(0)
  • 2020-12-17 16:34

    Since PHP 5.4, you cannot use a superglobal as the parameter to a function

    $_POST is globally accessible. So you don't have to pass to your function.

    http://php.net/manual/en/language.variables.superglobals.php#112184

    This is how your function should look like

    function rt_check_sidebar_array(){
    
        if(is_array($_POST)){
    
            $start_unset_count = 0;
    
            foreach($_POST as $key => $value){
                if(stristr($key, '_sidebar_name') == TRUE && $value=="") {                  
                    unset($_POST[$key]);
                    $start_unset_count = 1;
                }
    
                if($start_unset_count>0){
                    unset($_POST[$key]);
                    $start_unset_count++;
                }
    
                if($start_unset_count==6){
                    $start_unset_count = 0;
                }               
            }
        }
    
    
        $newPost == $newPost ? $newPost : $_POST;       
        return $_POST;
    }
    
    0 讨论(0)
  • 2020-12-17 16:49

    @user3450716. You can't change superglobal variables too, so you can't use unset($_POST[$key])

    function rt_check_sidebar_array(){
        $post = $_POST;
        if(is_array($post)){
    
            $start_unset_count = 0;
    
            foreach( $post as $key => $value ){
                if( stristr( $key, '_sidebar_name' ) == TRUE && $value == "" ) {                  
                    unset( $post[ $key ] );
                    $start_unset_count = 1;
                }
    
                if( $start_unset_count > 0 ){
                    unset( $post[ $key ] );
                    $start_unset_count++;
                }
    
                if( $start_unset_count == 6 ){
                    $start_unset_count = 0;
                }               
            }
        }
    
        // idk why you wrote this,
        // because $newPost variable isn't used in the code above and below
        $newPost == $newPost ? $newPost : $post;
    
        return $post;
    }
    
    0 讨论(0)
提交回复
热议问题