0

我正在构建一个 jQuery 文件来验证用户输入以在 wordpress 网站上登录。我已经创建了检查 wordpress 数据库中的用户名、电子邮件和密码的功能。我的功能非常适合用户名和电子邮件,但是使用密码功能时,我收到 500 内部服务器错误。我能想到的唯一一件事就是我试图从 wordpress 中包含三个文件。我必须使用 class-phpass.php 来检查密码,因为密码经过哈希处理,然后存储到数据库中。class-phpass.php 文件有一个名为 CheckPassword 的函数,它将散列密码与纯文本密码进行比较,如果匹配则返回 true,否则返回 false。我还包括了 wp-settings.php 和 wp-load.php,只是试图让我的 php 文件为我的验证工作。

我正在创建它,以便用户在输入错误的用户名或密码时不会从我在灯箱中的登录信息中删除。

这是我检查密码的 jQuery 函数:

jQuery.post("/wp-content/themes/Landing/includes/check_password.php", {password:pWd2, email:email},
            function(data){
                if( data == '1' )
                {
                    CheckPassword = true;
                }else{
                    //show that the password is NOT available
                    alert("The password and/or username you have entered is incorrect!");
                    CheckPassword = false;
                }  
            });

更新!!!::

好的,我的 php 文件正常工作,我的 jQuery.post 正常工作。但是,我现在有一个逻辑错误。我正在使用 chrome 工具并单步执行代码,我需要向表单返回 false 以防止网页刷新/重定向。提交我在此处进行的检查后,似乎逐步执行了功能(数据):

if (CheckUsername == false){
        return false;
    }
    if (CheckPassword == false){
        return false;
    }
    else{
        return true;
    }

它会在进入 post 函数之前检查 ^ ^ 该代码块,如果密码不正确,则将 CheckPassword 设置为 false。

4

1 回答 1

0

此行应该与您的数据库建立连接:

$connection = mysqli_connect("databaseAddress", "login", "password", "table"); //creates a database connection

" DatabaseAddress" 不是有效的数据库地址,其他选项可能也不是。您必须填写这些凭据。使用 Wordpress 时,一些常量定义在wp-config.php. 试试这条线:

$connection = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD); //creates a database connection
于 2015-01-14T14:04:51.907 回答