2016-07-13 3 views
0

Wie Details von wp_users id wissen nicht zu holen, in welchem ​​Format Wordpress speichern PasswortWie Details von wp_users id holen nicht wissen, Passwort, in welchem ​​Format Wordpress Shop

$user_login = $_REQUEST['user_login']; 
$pwd = md5($_REQUEST['user_pass']); 


$sql = "SELECT * from wp_users where user_login='$user_login' and user_pass='$pwd'"; 
      $sqlQuery = mysql_query($sql); 
      $numrows = mysql_num_rows($sqlQuery); 
      if($numrows > 0) 
      { 
       while($loginResult = mysql_fetch_assoc($sqlQuery)){ 


        $loginId = $loginResult['user_login']; 
        $email = $loginResult['user_email']; 

        $respond = array("id"=>$loginId,"email"=>$email); 

       } 

       echo '{"response": {"message":{"message":"Login Successfully"},"userInfo":'.json_encode($respond).'},"success":true}'; 

       }else{ 
       $message = array("message"=> "Invalid Credentials"); 
       echo '{"success":false,"message":'.json_encode($message).'}'; 

      } 

die ganze Zeit, wenn dieser Treffer Es zeigt mir keine ungültigen Zugangsdaten an, weil das Passwort nicht übereinstimmt, denke ich. Bitte geben Sie eine gute Lösung an.

Vielen Dank im Voraus

Antwort

1

können Sie verwendet wp_authenticate_username_password()

einen Benutzer authentifizieren, sind Benutzername und Passwort Bestätigung gültig

$userName = $_POST['user_login']; 
$password = $_POST['user_pass']; 
$check = wp_authenticate_username_password(NULL, $userName , $password); 

Sie können dann einfach das Ergebnis überprüfen mit

if(is_wp_error($check)) 
{ 
    echo 'Wrong'; 
} 
else 
{ 
    echo 'Correct'; 
} 
+0

es Bibliothek braucht für die Verwendung von wp_authenticate_username_password() -Methode, wenn ja, als die man wie in obigen Verfahren verwendet wird – James

+0

Keine Notwendigkeit, jede Bibliothek für diesen. Es wordpress Standardfunktionalität –

+0

so was wird Abfrage sein können Sie erklären, dass ich gemacht habe, wie es verwendet wird, bin ich verwirrt – James

1

Einweg ist

Wordpress speichert das Passwort mit der Funktion wp_hash_password().

Sie können das Benutzerpasswort in der Funktion übergeben und es wird das verschlüsselte Passwort zurückgeben.

im Auge behalten, dass Funktion in geschrieben wp-includes/pluggable.php

eine andere Art und Weise ist-

include '/wp-includes/class-phpass.php'); 
$hash = $user->user_pass; 
$wp_hasher = new PasswordHash(8, TRUE); 
$check = $wp_hasher->CheckPassword($password, $hash); 

Wenn $ check wahr ist, sie übereinstimmen.

Der Grund, warum Sie nicht denselben Hash zweimal generieren können, ist wegen der Verwendung eines Salzes. Das Abstimmen des Passworts beim Hashing erschwert das Hacken mit Wörterbuchangriffen. Aus diesem Grund funktioniert das erneute Generieren des Hash und das Vergleichen nicht. Der Hash ist nicht jedes Mal gleich. Die Prüffunktion nimmt einen Teil des Hash (das Salz) und das Passwort und berechnet den Hash mit diesem Salz neu, so dass es richtig überprüfen kann.

hoffen, es hilft

Verwandte Themen