Bizarre wp_signon problem

时间:2011-07-11 作者:user608207

wp\\u signon存在非常奇怪的问题

下面我将用户凭据传递给wp\\u check\\u password,它返回true,证明密码正确。。。。但是,当我尝试登录时,返回wp\\u error,并显示“错误:您为用户名XXXXXXX输入的密码不正确。”

拜托,谁能解释一下为什么会这样?如何修复?

<小时>

$password = "vdouW#DswYMH"
$hashed = wp_hash_password($password);   //$P$Bydu8uFLe8CFXmtGjA71Tfv8Tyo7nH0

if (wp_check_password($password,$hashed,$user->data->ID)) {
    echo "Yes, password correct".
    $creds[\'user_login\'] = $user->data->user_login;
    $creds[\'user_password\'] = $password;
    $creds[\'remember\'] = false;
    $user2 = wp_signon( $creds, true );

    if ( is_wp_error($user2) )
        echo $user2->get_error_message().\' - \'.$hashed;
    else
        echo \'Success<br/>\';
}

2 个回复
SO网友:MathSmath

可以肯定的是,wp\\u check\\u password()的使用方式与您的使用方式不同。

从外观来看the documentation, 就我通过查看源代码所知,此函数仅用于将您提供的明文密码与您提供的哈希进行比较,而不是检查特定用户存储的密码是否与传递的凭据相匹配。(用户id参数有误导性——我认为这与在必要时将用户现有密码从一种哈希转换为另一种哈希有关。但我不能百分之百确定)。

在任何情况下,都不需要手动执行任何此类检查。wp\\u signon()函数本身将检查cred,如果它们正确,它将登录用户并传回有效的用户对象。如果creds不正确,它将传回一个错误对象。

SO网友:lkraav

您使用什么功能添加用户?我刚遇到一个fail in wp_update_user (3.1), 导致wp\\U登录失败,因为密码已存储为双哈希。使用wp\\u insert\\u用户似乎操作正确。

结束

相关推荐

Create front end member login

我对这一切都很陌生,不是程序员。我想知道如何在网站上创建成员登录部分,允许用户查看公众看不到的数据。我不知道如何去做这件事,是否有一个小部件,人们可能会建议,不需要脑外科医生来让它工作。我使用的是Unite主题,我试图整合的网站位于tmpfire。com。我将非常感激能得到的一切帮助。非常感谢。