インターネットの普及に伴い、検証コード技術は Web サイトやアプリケーションの日常的な保護方法になりました。 CAPTCHA は、悪意のあるロボットやクローラーによる Web サイトやアプリケーションへの攻撃を防ぎ、ユーザー情報とプライバシーのセキュリティを確保します。 ThinkPHP6にはCaptcha技術が組み込まれており、簡単な設定と呼び出しで認証コード機能を簡単に実装できます。
1. Captcha の基本紹介
Captcha は画像検証コード テクノロジであり、その原理は、ユーザーがログインするかフォームを送信するときに、ランダムに生成された画像をユーザーに表示することです。ユーザーは画像内の確認コードを入力して続行します。このテクノロジーにより、悪意のある攻撃や自動化されたボットによる Web サイトやアプリケーションへの損害を大幅に防ぐことができます。一般的な Captcha テクノロジーには、数字、文字、または文字と数字の組み合わせ、音声検証コード、スライド検証コードなどが含まれます。
2. ThinkPHP6 に組み込まれた Captcha テクノロジーを使用する
ThinkPHP6 には、検証コード機能を簡単に実装できる Captcha クラスが組み込まれています。 Captcha テクノロジは、GD ライブラリとセッション メカニズムに基づいて実装されており、数字と文字のランダムな画像を生成できます。使用する前に、GD ライブラリがサーバーにインストールされ、有効になっていることを確認する必要があります。
まず、構成ファイル config/app.php で Captcha の関連構成を設定する必要があります (桁数など)。認証コード、認証コードの数、幅、高さなど構成は次のとおりです:
'captcha' => [ // 验证码位数 'length' => 4, // 验证码图片宽度 'width' => 150, // 验证码图片高度 'height' => 50, // 验证码过期时间(秒) 'expire' => 1800, // 是否使用中文验证码 'useZh' => false, // 是否使用算术验证码 'math' => false, // 是否使用背景图 'useImgBg' => false, ],
上記の構成で注意する必要があるのは次のとおりです:
length: 必要に応じて設定できる検証コードの桁数;
幅と高さ: 検証 コード イメージの幅と高さは必要に応じて設定できます;
expire: 検証コードの有効期限 (秒単位)。検証コードは次の時間に無効になります。設定時間;
useZh: 中国語の検証コードを使用するかどうか;
math: 算術検証コード、つまり単純な加算および減算演算を使用するかどうか。
useImgBg: 背景画像を使用するかどうかに関係なく、検証コードの背景として画像を追加できます。
コントローラーで Captcha クラスを呼び出して検証コードを生成し、ページに表示し、同時に保存する必要があります。セッションへの検証コード。入力された検証コードが正しいかどうかを確認するために使用されます。コントローラー コードは次のとおりです。
use thinkcaptchaacadeCaptcha; class Index extends BaseController { public function captcha() { return Captcha::create(); } }
上記のコードでは、ThinkPHP6 の静的呼び出しメソッドを使用して、Captcha::create() メソッドを通じて検証コードを直接生成します。生成された検証コードはバイナリ画像ストリームを返します。これは、テンプレートの タグを使用して直接表示できます。
最後に、ページ上で タグを使用して、生成された確認コードを表示し、確認コードを送信する必要があります。フォームが送信され、一緒にサーバーに渡されます。コードは次のとおりです。
<form action="submit" method="POST"> <!-- 显示验证码 --> <img src="<?php echo url('/index/captcha'); ?>" onclick="this.src=this.src+'?'+Math.random();" /> <!-- 输入验证码 --> <label for="verifyCode">验证码:</label> <input type="text" name="verifyCode" /> <button type="submit">提交</button> </form>
上記のコードでは、url() 関数を使用してキャプチャ URL アドレスを生成し、onclick イベントを通じて検証コードの再生成をトリガーします。サーバーがユーザーによって入力された確認コード値を正しく取得できるように、確認コード入力ボックスの名前は、サーバーによって処理される確認コードの名前と一致している必要があります。
3. まとめ
Webサイトやアプリケーションの保護手段として一般的なCaptcha技術ですが、ThinkPHP6に組み込まれているCaptchaクラスを利用することで、認証コード機能を簡単に実装することができます。使用する前に、GD ライブラリがサーバーにインストールされて開かれていることを確認し、Captcha 構成ファイルに関連する設定を行う必要があります。最後に、ページに検証コードを表示し、フォームの送信時にユーザーが入力した検証コードの値を検証のためにサーバーに渡す必要があります。
以上がThinkPHP6 での Captcha テクノロジーの使用の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。