【发布时间】:2017-09-27 01:12:27
【问题描述】:
如何修改我的代码以将我的密码从 MD5 更改为 WordPress 密码,例如 $P$B?因为我的应用程序用户注册信息发送给 wp-users。现在我无法使用用户在 Wordpress 的 Woocommerce 网站中注册的信息登录我的应用程序。我是因为密码才找到的。
我知道如果我想用我的应用程序连接密码,我只需要在localhost中将密码重置为MD5,但是因为我不知道我的用户密码,所以我不能使用这种方法,所以我打算这样做用户在我的应用程序中注册他们的帐户,发送给 wp-users 的密码将与 WordPress 相同。我在 PHP 代码中的密码加密关键字是这一行:
$user_pass = md5($user_pass);
下面是我的代码:
<?php
class DbOperations{
private $con;
function __construct(){
require_once dirname(__FILE__).'/DbConnect.php';
$db = new DbConnect();
$this->con = $db->connect();
}
/*CRUD -> C -> CREATE */
public function createUser($user_login, $user_pass,$user_email){
if($this->isUserExist($user_login,$user_email)){
return 0;
}else{
$user_pass = md5($user_pass);
$stmt = $this->con->prepare("INSERT INTO `wp_users` (`ID`, `user_login`, `user_pass`,`user_email`) VALUES (NULL, ?, ?, ?);");
$stmt->bind_param("sss",$user_login,$user_pass,$user_email);
if($stmt->execute()){
return 1;
}else{
return 2;
}
}
}
public function userLogin($user_login, $user_pass){
$user_pass = md5($user_pass);
$stmt = $this->con->prepare("SELECT ID FROM wp_users WHERE user_login = ? AND user_pass = ?");
$stmt->bind_param("ss",$user_login,$user_pass);
$stmt->execute();
$stmt->store_result();
return $stmt->num_rows > 0;
}
public function getUserByUsername($user_login){
$stmt = $this->con->prepare("SELECT * FROM wp_users WHERE user_login = ?");
$stmt->bind_param("s",$user_login);
$stmt->execute();
return $stmt->get_result()->fetch_assoc();
}
private function isUserExist($user_login, $user_email){
$stmt = $this->con->prepare("SELECT ID FROM wp_users WHERE user_login = ? OR user_email = ?");
$stmt->bind_param("ss", $user_login, $user_email);
$stmt->execute();
$stmt->store_result();
return $stmt->num_rows > 0;
}
}
?>
【问题讨论】:
-
如果有其他答案,请在此评论,目前仍未找到解决方案