2017-01-19 5 views
1

私のサイトはこのように見えます。php_selfの動作を使用するフォームでrecaptchaを設定するには

私が持っている問題は、Serverside ReCaptcha Checkを実装する方法を知らないということです。私は次のメソッドでそれを試してみましたが、そこでは関数が空であるというエラーが発生するのは明らかです。

$curl = curl_init(); 
curl_setopt_array($curl, [ 
    CURLOPT_RETURNTRANSFER => 1, 
    CURLOPT_URL => 'https://www.google.com/recaptcha/api/siteverify', 
    CURLOPT_POST =>1, 
    CURLOPT_POSTFIELDS => [ 
     'secret' => 'privat key', 
     'response' => $_POST['g-recaptcha-response'], 
     ], 
]); 

誰かが私を助けることができるほど十分に説明したかったと思います。

+0

を処理する必要がしようとしている場合は、あなたがしようとしたそのコードを入れなかった - 内部のフォームにボタンを送信する場合それがすでにチェックした場合POSTデータにありますか? – CBroe

答えて

0

なぜcurlコマンドを使用しようとしていますか?これはPHPコードで直接行うことができます。

すべてのダウンロードの最初に、このPHPのreCAPTCHAライブラリと、プロジェクトをインポートします。第二にreCaptcha gitHub

、あなたのアクションがあなたのPHPを呼び出すと、あなたのPHPコードでこれを実装した後。最後の場合

require_once('your-imported-autoload.php-path'); ex:Assets/reCaptcha/autoload.php 

    $privatekey = "-your private key-"; 

    $recaptcha = new \ReCaptcha\ReCaptcha($privatekey); 

    $resp = $recaptcha->verify($_POST['g-recaptcha-response'], 

    $_SERVER['REMOTE_ADDR']); 

    if (!$resp->isSuccess()) { 

    // What happens when the CAPTCHA was entered incorrectly 
    die ("The reCAPTCHA wasn't entered correctly. Go back and try it again." . 
     "(reCAPTCHA said: " . $resp->error . ")"); 

    } else { 
    // Your code here to handle a successful verification 

    } 

、cURLのためにあなたがSSLを介して接続し、それを

curl_setopt($verify, CURLOPT_SSL_VERIFYPEER, false); 
関連する問題