Codeigniter 4にライブラリRecaptcha V2を無料で使用できます。
この再投稿は、すでにhttps://github.com/phpdevsr/recaptcha-codeigniter4に移動しています
Recaptchaは、スパムや虐待からサイトを保護する無料のサービスです。高度なリスク分析エンジンを使用して、人間とボットを伝えます。新しいAPIを使用すると、かなりの数の有効な人間ユーザーがCaptchaを解決することなくRecaptchaチャレンジに合格します(詳細についてはブログを参照)。 Recaptchaは、ブログ、フォーラム、登録フォームなどに簡単に追加できるウィジェットの形で提供されます。
詳細を参照してください。
Recaptchaを使用するには、サイトのAPIキーペアにサインアップする必要があります。キーペアは、サイトのキーと秘密で構成されています。サイトキーは、サイトにウィジェットを表示するために使用されます。秘密は、アプリケーションバックエンドとRecaptchaサーバー間の通信を許可し、ユーザーの応答を確認します。秘密は、セキュリティ目的で安全に保つ必要があります。
作曲家と一緒にインストールします
$ composer require hexageek1337/recaptcha-codeigniter4Gitクローン付きの手動インストール
$ git clone https://github.com/hexageek1337/reCAPTCHA-Codeigniter
$ cd reCAPTCHA-Codeigniter-main
$ cp app/Config/Settings.php your_application_folder/Config/
$ cp app/Libraries/Recaptcha.php your_application_folder/Libraries/app/Config/Settings.phpファイルでサイトキーと秘密を設定します
public $ recaptcha_site_key = '' ;
public $ recaptcha_secret_key = '' ;
public $ recaptcha_lang = ' id ' ; echo $ this -> recaptcha -> getWidget ();出力:
< div class =" g-recaptcha " data-sitekey =" xxxxx " data-theme =" light " data-type =" image " data-size =" normal " loading =" lazy " > </ div >パス配列パラメーターでデフォルトテーマを変更します
echo $ this -> recaptcha -> getWidget ( array ( ' data-theme ' => ' dark ' ));パス配列パラメーターでデフォルトタイプを変更します
echo $ this -> recaptcha -> getWidget ( array ( ' data-theme ' => ' dark ' , ' data-type ' => ' audio ' )); echo $ this -> recaptcha -> getScriptTag ();出力:
< script type =" text/javascript " src =" https://www.google.com/recaptcha/api.js?render=onload&hl=id " defer > </ script >パス配列パラメーターによってレンダリング値を変更します
echo $ this -> recaptcha -> getScriptTag ( array ( ' render ' => ' explicit ' ));パス配列パラメーターでデフォルト言語を変更します
echo $ this -> recaptcha -> getScriptTag ( array ( ' render ' => ' explicit ' , ' hl ' => ' zh-TW ' ));Recaptcha Siteverify APIを呼び出して、ユーザーがg-recaptcha-response Postパラメーターに渡すかどうかを確認します。
$ captcha = $ this -> request -> getPost ( ' g-recaptcha-response ' );
$ response = $ this -> recaptcha -> verifyResponse ( $ captcha );成功を確認するか、失敗します
if ( isset ( $ response [ ' success ' ]) and $ response [ ' success ' ] === true ) {
echo " You got it! " ;
}