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

问题描述 投票:2回答:1

我正在为用户登录页面构建一个新的登录页面,但我使用的是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>";
    }



       }?>

它不起作用。我需要以什么方式实现它?

wordpress password-hash
1个回答
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";
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.