1

私はここの初心者なので、正しい場所に投稿していることを願っています! 私は一般的にコードと技術的な問題について最も基本的な理解しか持っていないので、これを説明できることを願っています....

Web サイトのフォームにキャプチャを実装して、ボットによる攻撃を阻止しようとしています。私はこれを使用しています:

https://developers.google.com/recaptcha/docs/php

クライアント側のテスト php ファイルを作成し、フォームにウィジェットを正常に実装しました。

サーバー側のverify.phpファイルも作成しましたが、(上記のリンクに従って)指示が太字で示されているverify.phpファイルに何を入力すればよいかわかりません:

if (!$resp->is_valid) {

**// What happens when the CAPTCHA was entered incorrectly**

   die ("The reCAPTCHA wasn't entered correctly. Go back and try it again." .

        "(reCAPTCHA said: " . $resp->error . ")");

} else {

 **// Your code here to handle a successful verification**

指示には次のように書かれていますが、どこに何を入力すればよいのかわかりません。

上記のコードでは: recaptcha_check_answer は、ユーザーがチャレンジを正常に完了したかどうかを表すオブジェクトを返します。

$resp->is_valid が true の場合、キャプチャ チャレンジは正しく完了しており、フォーム処理を続行する必要があります。

$resp->is_valid が false の場合、ユーザーは正しいキャプチャ テキストを提供できませんでした。フォームを再表示して、もう一度試行できるようにする必要があります。この場合、$resp->error は、recaptcha_get_html に提供できるエラー コードになります。エラー コードを渡すと、reCAPTCHA コントロールは、ユーザーがテキストを間違って入力したため、再試行する必要があることを説明するメッセージを表示します。

どんな助けでも大歓迎です!

どうもありがとう。マーク

4

3 に答える 3

1

// CAPTCHA が正しく入力されなかった場合に何が起こるか-> この下に、ユーザーがキャプチャを正しく入力しなかったことを示すメッセージが表示されたフォーム ページにユーザーをリダイレクトするようなものがあるはずです。

// 検証の成功を処理するためのコード-> この下で、通常どおりお問い合わせフォームを送信します。

それは私のウェブサイトで動作するコードです:

$publickey = "YOUR PUBLIC KEY HERE";
$privatekey = "YOUR PRIVATE KEY";
$resp = null;
$resp = recaptcha_check_answer ($privatekey,
                              $_SERVER["REMOTE_ADDR"],
                              $_POST["recaptcha_challenge_field"],
                              $_POST["recaptcha_response_field"]);

if($resp->is_valid){
    // under this, submit your contact form normally.
}
else {
    header("Location: page_where_the_user_was.php?error=1");
            die();
}
于 2013-05-16T14:24:00.523 に答える
0

これには、キャプチャを再度入力する必要があるページへのリダイレクトが含まれます。それがあなたを助けたことを願っています。

    if (!$resp->is_valid) {

    **// What happens when the CAPTCHA was entered incorrectly**

    header('Location: index.php');
   **// Or test.php, I don't know the name of your page

       die ("The reCAPTCHA wasn't entered correctly. Go back and try it again." .

            "(reCAPTCHA said: " . $resp->error . ")");

    } else {

     **// Your code here to handle a successful verification**

    echo "Login succesfull"; }
于 2013-05-16T14:44:12.807 に答える