2017-06-26 9 views
1

私は自分自身でこれを理解しようと壁に頭を叩いていましたが、成功しませんでした。私は同じページでキャプチャを検証するためにrecaptchaを取得しようとしています。私はむしろ次のページに進む前にcaptchaが正しいことを確認したいと思います。PHPの既存のフォームにGoogleのre-captchaを統合

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

これまでのところは良い:私はそうのような形の端における第2の部分を置くの指示に従って次に

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

:私は頭の中でグーグルのjsファイルの呼び出しを配置し​​ました。今、私の***を蹴っている部分はサーバー側の統合です。彼らが提供するコードは次のとおりです:

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. 

実際にどこがうまくいくのかというように、その部分がどのように動作するはずですか?私はcheckout.phpをbilling-checkout.phpに提出しています。その2番目の部分はbilling-checkout.phpに入りますか?もしそうなら、どうすれば正確に動作させることができますか?私はノブのような気持ちが嫌いですが、私はこの全部に非常に苛立っています。どんな助けもありがとう、ありがとう!

答えて

0

提供されたURLにcURLリクエストを行い、yayまたはnayを取得する必要があります。

<?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]を、私はそれを試してみると、あなたと一緒に戻って取得、感謝します:) – bbcompent1

+0

まあ、私はロボットではないよチェックしていなかったにもかかわらず、私はそれを試してみましたが、キャプチャはとにかく次のページに行ってきましたチェックボックス。それが動作する場合に備えて、同じページでこれを試してみよう。 – bbcompent1

+0

同じ部分と投稿しているページの両方でスクリプトのこの部分を試してみました。キャプチャは何もしていません。 – bbcompent1

関連する問題