2017-09-27 264 views
0

如何修改代码以将密码从MD5更改为WordPress密码(如$ P $ B)?因为我的应用用户注册信息发送给wp用户。现在,我无法使用Wordpress中Woocommerce网站中用户注册的信息登录我的应用程序。我发现是因为密码。将密码的PHP代码从MD5更改为WordPress密码

我知道如果我想连接密码与我的应用程序,我只需要重置密码到本地主机的MD5,但因为我不知道我的用户密码,所以我不能使用这种方法,所以我打算做用户在我的应用程序中注册他们的帐户,并且发送给wp用户的密码将与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; 
    } 

} 
?> 
+0

如果还有其他的回答,请评论在这里,仍然没有找到解决方案现在 –

回答

0

创建密码:

$plain_password="string"; 

$wp_hasher = new PasswordHash(16, true); 
$password = $wp_hasher->HashPassword($plain_password); 

$password现在类似于密码存储在wordpress数据库中。

确认密码:

$wp_hasher = new PasswordHash(16, true); 
if($wp_hasher->CheckPassword($password, $user_pass)) { 
      //statement 
} else { 
      //statement 
} 

您需要包括PasswordHash类。请访问: https://github.com/WordPress/WordPress/blob/master/wp-includes/class-phpass.php

+0

这个代码仅仅只有更换线$ user_pass = MD5($ user_pass); ? –

+0

好吧,只是看你的最新回答 –

+0

我可以知道创建密码和检查密码代码写在哪里? –