验证码的PHP代码丢失了吗?

时间:2013-05-16 14:13:10

标签: php recaptcha

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

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

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->错误将是可以提供给recaptcha_get_html的错误代码。传递错误代码会使reCAPTCHA控件显示一条消息,说明用户输入的文本不正确,应该再试一次。

非常感谢任何帮助!

非常感谢。 标记

3 个答案:

答案 0 :(得分: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();
}

答案 1 :(得分: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"; }

答案 2 :(得分: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"; }