2017-06-26 2 views
1

Ok, je me suis cogné la tête contre le mur en essayant de comprendre cela par moi-même, mais je n'ai pas eu de succès. J'essaye d'obtenir recaptcha pour valider le captcha sur la même page. Je préférerais qu'il vérifie que le captcha est juste avant de passer à la page suivante. Je mis l'appel pour le fichier de Google dans la tête:Intégrer Google re-captcha sous forme existante PHP

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

Ensuite, en suivant les instructions que je place la deuxième pièce à la fin de la forme comme ceci:

<div class="g-recaptcha" data-sitekey="***************************************"></div> 

Jusqu'à présent, si bon. Maintenant, la partie qui donne le coup d'envoi à mon *** est l'intégration côté serveur. Le code qu'ils fournissent est:

When your users submit the form where you integrated reCAPTCHA, you'll get 
as part of the payload a string with the name "g-recaptcha-response". In 
order to check whether Google has verified that user, send a POST request 
with these parameters: 

URL: https://www.google.com/recaptcha/api/siteverify 
secret (required) ********************************************** 
response (required) The value of 'g-recaptcha-response'. 
remoteip The end user's ip address. 

Je suis vraiment perplexe quant à la façon cette partie est censé fonctionner, comme où vont réellement? J'ai checkout.php en soumettant à billing-checkout.php. Est-ce que cette deuxième partie va dans billing-checkout.php? Si oui, comment puis-je le faire fonctionner exactement? Je déteste me sentir comme un noob mais je suis très frustré par toute cette histoire. Toute aide serait appréciée Merci!

Répondre

0

Vous devrez faire une requête cURL à l'adresse URL fournie et soit yay yay soit nay back.

<?php 
$cp = curl_init("https://www.google.com/recaptcha/api/siteverify"); 
$fields = array(
    'secret' => YOUR_RECAPTCHA_PRIVATE_KEY, 
    'response' => $_POST['g-recaptcha-response'], 
    'remoteip' => $_SERVER['REMOTE_ADDR'] 
); 
curl_setopt($cp, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($cp, CURLOPT_POST, 1); 
curl_setopt($cp, CURLOPT_POSTFIELDS, $fields); 
curl_setopt($cp, CURLOPT_TIMEOUT, 15); 

$data = curl_exec($cp); // The response 

curl_close($cp); 

?> 
+0

Ok, je vais donner cette essayer et revenir avec vous, merci :) – bbcompent1

+0

Eh bien, j'ai essayé, mais le captcha allé à la page suivante de toute façon, même si je n'ai pas vérifié la je ne suis pas un robot case à cocher Va essayer ça sur la même page juste au cas où ça marcherait. – bbcompent1

+0

J'ai essayé cette partie du script à la fois sur la même page et sur la page à laquelle elle est soumise. Le captcha ne fait rien. – bbcompent1