2017-02-16 4 views
1

Ich habe alle meinen Code genau eingerichtet, wie Google die API dokumentiert, aber es gibt immer einen booleschen Wert von false zurück, gibt es etwas falsch, dass ich getan habe?Wie man reCaptcha in einem HTML-Webformular hinzufügt

<?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..."; 
    } 
    } 

?> 

und mein HTML-Formular mit dem Link JavaScript kopiert von Google und die Daten sitekey ich erhielt:

<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

haben Sie ging diese [link] (https://codeforgeek.com/2014/12/google-recaptcha-tutorial/)? – rahulsm

Antwort

1

dieses Skript hinzufügen:

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

und HTML hinzufügen, bevor Sie Senden Schaltfläche:

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