在WordPress中注册后无法登录

时间:2015-10-27 11:10:02

标签: php wordpress

我有一个案例,即我正在使用wp_insert_user()注册用户并使用wp_signon()登录。注册成功但是当我使用wp_signon()时,我收到错误:

  

'用户名或密码无效。请再试一次!'。

以下是我的努力,我找不到问题。

function wp_create_user_my($username, $password, $email = '', $fname, $lname) {
    $first_name = wp_slash($fname);
    $last_name = wp_slash($lname);
    $user_login = wp_slash($username);
    $user_email = wp_slash($email);
    $user_pass = $password;
    $userdata = compact('user_login', 'user_email', 'user_pass','first_name','last_name');
    return wp_insert_user($userdata);
}

以下是signon()

的代码
$login_data['user_login'] = esc_attr($username);
$login_data['user_password'] = esc_attr($new_password);
$login_data['remember'] = true;
$user_verify = wp_signon($login_data, false);

1 个答案:

答案 0 :(得分:1)

见:

$login_data['user_login'] = esc_attr($username);
$login_data['user_password'] = esc_attr($new_password);

esc_attr函数对<, >, &, " and '个符号/符号进行编码。如果用户拥有其用户名或密码中的任何一个,它将与最初存储/保存在数据库中的用户不同,因为传递给与数据库存储值进行比较的是任何或所有的转义版本。那些人物。

我建议您使用插入用户时使用的wp_slash函数:

$login_data['user_login'] = wp_slash($username);
$login_data['user_password'] = wp_slash($new_password);

这样,您获得的内容与插入数据库的内容一致。