0

wordpress サイトにログインするためのユーザー入力を検証する jQuery ファイルを作成しています。ユーザー名、電子メール、およびパスワードのワードプレスデータベースをチェックする機能を作成しました。ユーザー名と電子メールに対して完全に機能する機能がありますが、パスワード機能を使用すると、500 内部サーバー エラーが発生します。これを引き起こしていると私が考えることができる唯一のことは、ワードプレスから3つのファイルを含めようとしたことです. パスワードはハッシュされてからデータベースに保存されるため、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;
                }  
            });

アップデート!!!::

OK、php ファイルが正常に動作し、jQuery.post も正常に動作しています。ただし、現在、論理エラーが発生しています。クロム ツールを使用してコードをステップ実行しています。フォームに false を返して、Web ページが更新/リダイレクトされないようにする必要があります。ここにあるチェックのために提出した後、関数(データ)をステップスルーするようです:

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 に答える