2017-09-27 1 views
0

Comment puis-je modifier mon code pour changer mon mot de passe de MD5 en mot de passe WordPress comme $ P $ B? Parce que mes informations d'inscription de l'utilisateur de l'application envoyer à wp-users. Et maintenant, je ne peux pas me connecter à mon application avec les informations enregistrées par l'utilisateur dans le site Woocommerce dans Wordpress. Je trouve à cause du mot de passe. Je sais si je veux connecter le mot de passe avec mon application, j'ai juste besoin de réinitialiser le mot de passe à MD5 dans localhost, mais parce que je ne connais pas mon mot de passe, je ne peux pas utiliser cette méthode, donc je prévois de le faire l'utilisateur enregistre son compte dans mon application et le mot de passe envoyé à wp-users deviendra le même que WordPress. Mon cryptage par mot de passe mot clé dans le code PHP est cette ligne:Modification du code PHP du mot de passe du mot de passe MD5 au mot de passe WordPress

$user_pass = md5($user_pass); 

Ci-dessous est mon code:

<?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

si a autre réponse, s'il vous plaît commentaire ici, toujours pas trouver la solution maintenant –

Répondre

0

Créer Mot de passe:

$plain_password="string"; 

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

$password est maintenant similaire au mot de passe stocké dans la base de données wordpress.

Vérifiez le mot de passe:

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

Vous devez inclure PasswordHash classe. Disponible ici: https://github.com/WordPress/WordPress/blob/master/wp-includes/class-phpass.php

+0

ce code juste seulement remplacer la ligne $ User_Pass = md5 ($ User_Pass de); ? –

+0

ok, juste voir votre dernière réponse –

+0

Puis-je savoir créer un mot de passe et vérifier le code de mot de passe écrire à où? –