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

标签 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>";
    }



       }?>

它不工作。我需要什么方式来实现它?

最佳答案

<?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";
    }
}

关于wordpress - 如何从自定义登录页面上的 wp_user 表检查用户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55796121/

相关文章:

css - 在图像下方显示文本而不是覆盖

entity-framework - 如何在外部管理(添加)ASP.NET Core 3.1 应用程序的用户

php - 添加 Hook 以删除 woocommerce 购物车中的项目

jquery - 如何使用 jQuery 更改菜单中列表项的 z-index?

php - 为什么我的 WordPress 类别列表会显示草稿和垃圾数量?

php - password_hash 仍然散列并存储一个 undefined variable

php - PHP 中的密码验证

wordpress - 当/var/www/html已安装在主机中时,如何将wordpress容器与wp-cli容器一起使用?

php - 最佳加密技术

password-hash - Adonis JS - 哈希密码