如何在自定义登录页面上的wp_user表中检查用户?

时间:2019-04-22 14:36:50

标签: wordpress password-hash

我正在为用户登录页面构建一个新的登录页面,但是我正在使用wp_user表。当我尝试使用md5()或wp_hash_password()来检查用户密码时,它不起作用。

我的代码如下:

    <?php if(isset($_POST['submit'])){
     //print_r($_POST); die();
     $user_email=$_POST['email'];
     $user_pass=$_POST['pass'];
     $encuser_pass = wp_hash_password( $user_pass );

    echo $check_user="select * from wp_users WHERE user_login='$user_email'AND user_pass='$encuser_pass)";
  //echo $check_user; die;

    $run=$wpdb->get_results($check_user, ARRAY_A);

    if(count($run))
    {
       $_SESSION['email']= $user_email;//here session is used and value of $user_email store in $_SESSION.

    wp_redirect( get_site_url().'/dashboard/');
    exit;

    }

    else
    {
        echo "<script>alert('Email or Password is wrong')</script>";
    }



       }?>

不起作用。我需要哪种方式实现它?

1 个答案:

答案 0 :(得分:2)

<?php require_once(ABSPATH . 'wp-includes/class-phpass.php'); 
<?php if(isset($_POST['submit'])){
     $user_email=$_POST['email'];
     $user_pass=$_POST['pass'];

    global $wpdb;
    $check_user="select user_pass from wp_users WHERE user_login='$user_email'";

    $wp_hasher = new PasswordHash(8, TRUE);
    $password_hashed = $wpdb->get_var($check_user);

    if($wp_hasher->CheckPassword($user_pass, $password_hashed)) {
        echo "YES, Matched";
    } else {
        echo "No, Wrong Password";
    }
}
相关问题