CakePHP3に Invisible ReCaptchaを導入するため、下記のプラグインを導入し、設定方法の案内に沿って設定してみました。
https://github.com/mosaxiv/cakephp-invisible-recaptcha
・cakephp-invisible-recaptcha のインストール
Composer
1composer require mosaxiv/cakephp-invisible-recaptcha
・cakephp-invisible-recaptcha のロード
/src/Controller/AppController.php に下記のソースコードを追加しました。
※下記の「sitekey」「secretkey」の値はサンプルのものです。
php
1 Configure::write('recaptcha', [ 2 'sitekey' => '6LeIxAcTAAAAAJcZVRqyHh71UMIEGNQ_MXjiZKhI', 3 'secretkey' => '6LeIxAcTAAAAAGG-vFI1TnRWxMZNFuojJ4WifJWe', 4 ]); 5 $this->loadComponent('InvisibleReCaptcha.InvisibleReCaptcha');
・テンプレートに編集
/src/Template/Contacts/form.ctp に下記のコードを追加しました。
php
1echo $this->InvisibleReCaptcha->render();
・コントローラーに編集
/src/Controller/ContactsController.php の formアクションにに下記のコードを追加しました。
php
1 if (!$this->InvisibleReCaptcha->verify()) { 2 echo "エラー"; 3 } 4
表示をさせてみたところ、テンプレートファイルの「echo $this->InvisibleReCaptcha->render();」を記述した場所に「An Internal Error Has Occurred」のエラーが表示されました。
エラーログを見たところ、下記のエラーが出力されていました。
ErrorLog
1Error: [Cake\View\Exception\MissingElementException] Element file "InvisibleReCaptcha.Element\recaptcha.ctp" is missing. 2
ただ、下記の場所には呼び出す対象と思われる「recaptcha.ctp」ファイルは存在していました。
/vendor/mosaxiv/cakephp-invisible-recaptcha/src/Template/Element/recaptcha.ctp
CakePHP3のバージョンによっては何か追加で記述する必要があるようなものなのでしょうか?
おわかりになる方、何か教えていただけませんでしょうか?
また、環境は以下になります。
PHP:7.2.6
CakePHP:3.7.4
回答1件
あなたの回答
tips
プレビュー