2017-02-16 4 views
1

私のコードはすべて、GoogleがAPIを文書化する方法を正確に設定していますが、falseの論理値を返し続けます。htmlウェブフォームに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..."; 
    } 
    } 

?> 

とGoogleからコピーされた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 --> 
関連する問題