2016-05-25 8 views
0

私のCakePHPアプリケーションのログインページと登録ページにgoogleのreCAPTCHAを追加しようとしています。しかし、それは誤り以下を示す:エラー:定義されていない関数を呼び出すrecaptcha_check_answer()t CakePHP 2.5.1(PHP 5.3.28)

致命的なエラー エラー:未定義の関数recaptcha_check_answer(の呼び出し)
ファイル:C:... \アプリ\コントローラ\ UsersController.php

がUserControllerで、私は次のようしていますエラーメッセージに示されている行。

$recaptchaResp = recaptcha_check_answer(Configure::read("Recaptcha.privateKey"), 
          $_SERVER["REMOTE_ADDR"], 

          $this->params['form']["recaptcha_challenge_field"], 
          $this->params['form']["recaptcha_response_field"]); 

このコードで何が間違っているか教えてください。 recaptchalibのようなファイルがありませんか?もしそうなら、どこのCakePHP 2.5.1用にこのライブラリを入手できますか?

+2

エラーメッセージを読んで、何が間違っているか知っていますか?あなたがそれを読んだが、それを理解していない場合は、単にそれをGoogleまたはPHPのマニュアルを確認してください。 – burzum

+0

あなた自身の質問に答えました: "エラー:定義されていない関数recaptcha_check_answer()"を呼び出してください。 – drmonkeyninja

+0

私はすでにこの問題を探りましたが、解決策は見つかりませんでした。 PHPアプリケーションでreCAPTCHAを追加する方法についていくつかの提案があります。 CakePHP 2.5.1(PHP 5.3.28)で開発されたアプリケーションにどのように統合するかについては正確ではありません。このプラグインを追加するには別の方法があるようです。 – Tom

答えて

1

cakephpにGoogle reCaptcha用のプラグインがあります。 Here

recaptchaプラグインを使用するには、/app/Config/bootstrap.phpファイルに次の2行を含める必要があります。

Configure::write('Recaptcha.publicKey', 'public-api-key'); 
Configure::write('Recaptcha.privateKey', 'private-api-key'); 

recaptchaを使用するコントローラには、Recaptchaコンポーネントが含まれている必要があります。コンポーネントを含めると、自動的にヘルパーが表示されます。ビューで

public $components = array('Recaptcha.Recaptcha'); 

単にreCAPTCHAの入力レンダリングするヘルパーディスプレイ()メソッドを呼び出します。単にあなたのコントローラでは、このような何かを、結果を確認するには

echo $this->Recaptcha->display(); 

を:

if ($this->request->is('post')) { 
    if ($this->Recaptcha->verify()) { 
     // verified 
    } else { 
     // display the error 
    } 
} 
+0

あなたは実際に質問に答えなかっただけで、別の解決策を提案しました。 – AD7six

+0

@AIPD TECH、あなたが言及したサイトからプラグインをダウンロードしましたが、recaptchalibファイルはありません。このrecaptchalibなしでどうやって動くの? – Tom

+0

@Tomそこにはベンダーがいます、あなたはプラグインを試しましたか? –