2017-02-16 95 views
1

我已经准备好了Google的所有代码,如何记录API文档,但是它一直返回一个false布尔值,是否有错误发生?如何在html web表单上添加reCaptcha

<?php 
    if(isset($_POST['sendEmail'])) { 
    $privateKey = "__my_secret_key__"; 
    $response = $_POST['g-recaptcha-response']; 
    $remoteip = $_SERVER['REMOTE_ADDR']; 
    $url = file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=$privateKey&response=$response&remoteip=$remoteip"); 

    $result = json_decode($url, true); 

    if($result->success == true) { 
     $name = strip_tags(trim($_POST['name_1'])); 
     $surname = strip_tags(trim($_POST['surname_1'])); 
     $userArray = [ 
     'name' => $name, 
     'surname' => $surname, 
     ]; 
     var_dump($userArray); 

    } else { 
     echo "reCaptcha failed, please try again..."; 
    } 
    } 

?> 

我与谷歌复制的JavaScript的链接,我接收到的数据,sitekey HTML表单:

<html lang="en"> 
<head> 
    <meta charset="utf-8"> 
    <title>Recaptcha Example</title> 
</head> 

<body> 
<br> 
<br> 
<form action="" method="post"> 
    <div class="form-row"> 
    <input name="name_1" placeholder="Your name" type="text"> 
    </div> 

    <br> 

    <div class="form-row"> 
    <input name="surname_1" placeholder="Your surname" type="text"> 
    </div> 

    <br> 

    <div class="form-row"> 
    <div class="g-recaptcha" data-sitekey="__Site_key__"></div> 
    </div> 

    <br> 

    <input name="sendEmail" type="submit" value="Call me back"> 

    <br> 

    <h4 id="response"></h4> 
    </form> 

    <script src='https://www.google.com/recaptcha/api.js'></script> 
    </body> 
</html> 
+0

有没有你经历了这个[链接](https://codeforgeek.com/2014/12/google-recaptcha-tutorial/)? – rahulsm

回答

1

添加这个脚本:

<script src='https://www.google.com/recaptcha/api.js'></script> 
<script> 

function get_action(form) 
{ 
    var v = grecaptcha.getResponse(); 
    if(v.length == 0) 
    { 
     document.getElementById('captcha').innerHTML="You can't leave Captcha Code empty"; 
     return false; 
    } 
    else 
    { 
     document.getElementById('captcha').innerHTML="Captcha completed"; 
     return true; 
    } 
} 

</script> 

之前添加此HTML您提交按钮:

<div class="g-recaptcha" id="rcaptcha" data-sitekey="site key"></div> 
<span id="captcha" style="color:red" /></span> <!-- this will show captcha errors -->