在WordPress中出现错误非法字符串偏移

时间:2019-02-20 05:48:48

标签: php wordpress

PHP Warning:  Illegal string offset 'user_login' in /home/.../wp-includes/user.php on line 83
PHP Warning:  Illegal string offset 'user_password' in /home/.../wp-includes/user.php on line 83

以下代码:-

add_filter('authenticate', 'wp_authenticate_cookie', 30, 3);

$user = wp_authenticate($credentials['user_login'], $credentials['user_password']);

if ( is_wp_error($user) ) {
    if ( $user->get_error_codes() == array('empty_username', 'empty_password') ) {
        $user = new WP_Error('', '');
    }

    return $user;
}

2 个答案:

答案 0 :(得分:0)

显然$credentials不是那个数组。显示var_dump($credentials);

错误的字符串偏移量'whatever'in ...通常意味着:您正在尝试将字符串用作完整数组。

这实际上是可能的,因为在PHP中,字符串可以被视为单个字符的数组。因此,您认为$ var是带有键的数组,但它只是具有标准数字键的字符串

答案 1 :(得分:0)

  • 尝试在$ user之前添加以下行

         if(isset($_POST)){                                         
             $credentials = array(                               
                'user_login' => isset($_POST['log']) ? $_POST['log'] : '',
                'user_password' => isset($_POST['pwd']) ? $_POST['pwd'] :'',                  
            );                                                              
         }