【发布时间】:2016-06-08 08:26:53
【问题描述】:
我想通过编码在 WordPress 中插入新用户,然后比较用户名和 密码。我尝试通过两种方式插入用户名和密码。
1
插入新的用户代码(表 - wp_users)
$email = $_POST['txtEmail'];
$userName = $_POST['txtUserName'];//Sahil
$password = $_POST['txtPassword'];//1212
$hash_value = password_hash($password, PASSWORD_BCRYPT);
$user_id = wp_create_user( $userName, $hash_value, $email);
2
试图以其他方式插入密码
$settings = array('cost' => 10, 'salt' => 'rSq.2M7Ikc.QPhVtYlp1Nu');
$hash_value = password_hash($password, PASSWORD_BCRYPT, $settings);
$user_id = wp_create_user( $userName, $hash_value, $email);
我没有添加代码来检查表中是否存在用户名和电子邮件。上面的代码工作正常,新用户正在 wp_users 表中添加,密码以哈希格式存储。前任。 $P$BgynwP/kZuQu5p/SAU/dTMA19sbJs3/
我尝试通过两个函数比较它,但它总是返回 false。
1
$userName = $_POST['txtUserName'];//Sahil
$password = $_POST['txtPassword'];//1212
$user = get_user_by( 'login', $userName );
$result = wp_check_password( $password, $user->user_pass, $user->ID);
if($result){
echo 'Correct';
}else{
echo 'Wrong'; //Always return wrong
}
2
$userName = $_POST['txtUserName'];//Sahil
$password = $_POST['txtPassword'];//1212
$user = get_user_by( 'login', $userName );
$isPasswordCorrect = password_verify($password, $user->user_pass);
if($isPasswordCorrect){
echo 'Correct';
}else{
echo 'Wrong'; //Always return wrong.
}
也试过了——
var_dump(password_verify($password, $user->user_pass));
但它仍然返回 false。
让我知道,如果在比较密码时我的代码有任何错误,或者技术是错误的,请告诉我。
谢谢
【问题讨论】:
-
password_hash和wp_check_password取决于两种方法。是HASH和MD5 -
@Abdulla - 感谢您的回复。我对此了解不多。如果您知道,请给我解决方案。