Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 新的Google ReCaptcha实施和提交前检查_Php_Jquery_Google Api_Recaptcha - Fatal编程技术网

Php 新的Google ReCaptcha实施和提交前检查

Php 新的Google ReCaptcha实施和提交前检查,php,jquery,google-api,recaptcha,Php,Jquery,Google Api,Recaptcha,我不熟悉PHP、jQuery和AJAX 我正在尝试实现新的谷歌Recapcha 看起来像- 点击后- 经核实,- php的代码是- <html> <head> <title>Google recapcha demo - Codeforgeek</title> </head> <body> <h1>Google reCAPTHA Demo</h1> <form id="

我不熟悉PHP、jQuery和AJAX

我正在尝试实现新的谷歌Recapcha

看起来像-

点击后-

经核实,-

php的代码是-

<html>
<head>
    <title>Google recapcha demo - Codeforgeek</title>
</head>
<body>
    <h1>Google reCAPTHA Demo</h1>
    <form id="comment_form" action="received.php" method="post">
        <input type="email" placeholder="Type your email" size="40"><br><br>
        <textarea name="comment" rows="8" cols="39"></textarea><br><br>
        <!-- ---------------------------------------Capcha Start------------------------------------- -->
            <script src='https://www.google.com/recaptcha/api.js'></script>
            <?php $siteKey="6LdLqv8SAAAAADT3YEjm6ONCwnPD95frMSZ92Ftv" ?>
            <div class="g-recaptcha" data-sitekey="<?php echo $siteKey; ?>"></div>
        <!-- ----------------------------------------Capcha End------------------------------------ -->
        <br><br>
        <input type="submit" name="submit" value="Post comment"><br><br>
    </form>
</body>
</html>
以及接收的部分-received.php

<?php
//////////////////////////////////////////Check Capch Function Start
function CapchaCheck()
{
    $captcha;
    if(isset($_POST['g-recaptcha-response']))
    {
        $captcha=$_POST['g-recaptcha-response'];
    }
    if(!$captcha)
    {
        return false;
    }
    $secreatKey="6LdLqv8SAAAAAIWxKcn2zIKjWau2Mdz6yzE3Kkcm";
    $response=file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=".$secreatKey."&response=".$captcha."&remoteip=".$_SERVER['REMOTE_ADDR']);
    var_dump($response);
    if($response.success==false)
    {
        return false;
    }
    else
    {
        return true;
    }
}
//////////////////////////////////////////Check ReCaptcha Function End

if(CapchaCheck())
{
    echo '<h2>Thanks for posting comment.</h2>';
}
else
{
    echo '<h2>You are spammer ! Get the @$%K out</h2>';
}
?>
它工作得很好

但我不想在提交后检查ReCapcha是否正确。如果ReCaptcha错误,我想阻止用户提交

所以,我想我需要jQuery来完成这个任务

但我不知道如何实现它

谁能帮帮我吗


提前感谢您的帮助。

本页介绍如何在您的网页上显示和自定义reCAPTCHA小部件


回调函数可用于控制检查用户输入后发生的行为。

本页介绍如何在网页上显示和自定义reCAPTCHA小部件


回调函数可用于控制检查用户输入后发生的行为。

使用此函数在客户端站点使用简单javascript 100%工作验证google recaptcha

此代码位于html正文中:

<div class="g-recaptcha" id="rcaptcha" style="margin-left: 90px;" data-sitekey="my_key"></div>
 <span id="captcha" style="margin-left:100px;color:red" />

使用它在客户端站点使用简单的javascript 100%工作验证来验证GoogleReCAPTCHA

此代码位于html正文中:

<div class="g-recaptcha" id="rcaptcha" style="margin-left: 90px;" data-sitekey="my_key"></div>
 <span id="captcha" style="margin-left:100px;color:red" />


这里有一个答案:这个问题在你的后面:你可能想从你的示例代码中删除secreatKey,因为这对黑客来说很方便…这里有一个答案:这个问题在你的后面:你可能想从示例代码中删除secreatKey,因为这对黑客来说很方便…不,我已经这样做了。我已经提供了代码。我需要AJAX。NP谢谢你的帮助,我也有这个问题@Abrar Jahint这个代码正在使用我提供的代码。您只需将$sitekey更改为自己的,它就可以正常工作。如果您想在提交之前检查它,那么应该使用AJAX。它会解决你的问题。ThanksI稍后将在我能够实现它时使用AJAX添加答案。谢谢不,我已经做过了。我已经提供了代码。我需要AJAX。NP谢谢你的帮助,我也有这个问题@Abrar Jahint这个代码正在使用我提供的代码。您只需将$sitekey更改为自己的,它就可以正常工作。如果您想在提交之前检查它,那么应该使用AJAX。它会解决你的问题。ThanksI稍后将在我能够实现它时使用AJAX添加答案。谢谢在客户端验证验证码?你在开玩笑吧?是什么阻止了垃圾邮件发送者破坏您的验证并始终返回true?@OlegV.Volkov哦,但它只会变得更糟。响应根本没有得到验证;任何非空响应v.length!=接受0!这段代码适用于我在我的项目中使用过的我…也适用于其他我有评论说它使用客户端站点验证而不是响应验证…@PravinSharma我有点晚了,但仍然想回复。他们并不是说它不起作用,只是说它不安全。它违背了验证码的全部目的。我们不是要阻止真人,我们是要阻止那些可以超越客户端任何东西的机器人。所以,在客户端进行验证时,您可能不需要验证码。在客户端验证验证码?你在开玩笑吧?是什么阻止了垃圾邮件发送者破坏您的验证并始终返回true?@OlegV.Volkov哦,但它只会变得更糟。响应根本没有得到验证;任何非空响应v.length!=接受0!这段代码适用于我在我的项目中使用过的我…也适用于其他我有评论说它使用客户端站点验证而不是响应验证…@PravinSharma我有点晚了,但仍然想回复。他们并不是说它不起作用,只是说它不安全。它违背了验证码的全部目的。我们不是要阻止真人,我们是要阻止那些可以超越客户端任何东西的机器人。因此,在客户端进行验证时,您最好不要使用验证码。
function reCaptchaServerControl(){ 
var reCaptchaResponse = $("#g-recaptcha-response").val();
if (reCaptchaResponse) {
    $.ajax({
        type: 'POST',
        url: "submitContact.php", 
        dataType: 'html',
        async: true,
        data: {response : reCaptchaResponse} ,
        success: function(serverResponse) { 
            //alert(serverResponse);
            var serverResponse = $.parseJSON(serverResponse);
          },
            error: function (XMLHttpRequest, textStatus, errorThrown) {
                //alert("Error");
            }
        });
    } else {
        //alert("error");
    }    
}