1

我是这里的新手,所以希望我在正确的地方发帖!我对代码和一般技术问题只有最基本的了解,所以我希望我能解释一下......

我正在尝试在我的网站上的表单上实施验证码,以阻止机器人攻击它。我正在使用这个:

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 为真,则验证码质询已正确完成,您应该继续处理表单。

如果 $resp->is_valid 为 false,则用户未能提供正确的验证码文本,您应该重新显示表单以允许他们再次尝试。在这种情况下,$resp->error 将是一个可以提供给 recaptcha_get_html 的错误代码。传递错误代码会使 reCAPTCHA 控件显示一条消息,说明用户输入的文本不正确,应该重试。

非常感谢任何帮助!

非常感谢。标记

4

3 回答 3

1

// 当验证码输入错误时会发生什么-> 在此之下,应该有类似将用户重定向回表单页面的消息,指出他没有正确填写验证码。

// 您在此处处理成功验证的代码-> 在此下,正常提交您的联系表单。

这是我网站上的工作代码:

$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**

   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:21:41.797 回答
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 回答