ホームページ > PHPフレームワーク > ThinkPHP > ThinkPHP6 での Captcha テクノロジーの使用

ThinkPHP6 での Captcha テクノロジーの使用

王林
リリース: 2023-06-21 09:10:57
オリジナル
2273 人が閲覧しました

インターネットの普及に伴い、検証コード技術は Web サイトやアプリケーションの日常的な保護方法になりました。 CAPTCHA は、悪意のあるロボットやクローラーによる Web サイトやアプリケーションへの攻撃を防ぎ、ユーザー情報とプライバシーのセキュリティを確保します。 ThinkPHP6にはCaptcha技術が組み込まれており、簡単な設定と呼び出しで認証コード機能を簡単に実装できます。

1. Captcha の基本紹介

Captcha は画像検証コード テクノロジであり、その原理は、ユーザーがログインするかフォームを送信するときに、ランダムに生成された画像をユーザーに表示することです。ユーザーは画像内の確認コードを入力して続行します。このテクノロジーにより、悪意のある攻撃や自動化されたボットによる Web サイトやアプリケーションへの損害を大幅に防ぐことができます。一般的な Captcha テクノロジーには、数字、文字、または文字と数字の組み合わせ、音声検証コード、スライド検証コードなどが含まれます。

2. ThinkPHP6 に組み込まれた Captcha テクノロジーを使用する

ThinkPHP6 には、検証コード機能を簡単に実装できる Captcha クラスが組み込まれています。 Captcha テクノロジは、GD ライブラリとセッション メカニズムに基づいて実装されており、数字と文字のランダムな画像を生成できます。使用する前に、GD ライブラリがサーバーにインストールされ、有効になっていることを確認する必要があります。

  1. 構成ファイルの設定

まず、構成ファイル config/app.php で Captcha の関連構成を設定する必要があります (桁数など)。認証コード、認証コードの数、幅、高さなど構成は次のとおりです:

'captcha'    => [
        // 验证码位数
        'length'   => 4,
        // 验证码图片宽度
        'width'    => 150,
        // 验证码图片高度
        'height'   => 50,
        // 验证码过期时间(秒)
        'expire'   => 1800,
        // 是否使用中文验证码
        'useZh'    => false,
        // 是否使用算术验证码
        'math'     => false,
        // 是否使用背景图
        'useImgBg' => false,
    ],
ログイン後にコピー

上記の構成で注意する必要があるのは次のとおりです:

length: 必要に応じて設定できる検証コードの桁数;

幅と高さ: 検証 コード イメージの幅と高さは必要に応じて設定できます;

expire: 検証コードの有効期限 (秒単位)。検証コードは次の時間に無効になります。設定時間;

useZh: 中国語の検証コードを使用するかどうか;

math: 算術検証コード、つまり単純な加算および減算演算を使用するかどうか。

useImgBg: 背景画像を使用するかどうかに関係なく、検証コードの背景として画像を追加できます。

  1. コントローラーの書き込み

コントローラーで Captcha クラスを呼び出して検証コードを生成し、ページに表示し、同時に保存する必要があります。セッションへの検証コード。入力された検証コードが正しいかどうかを確認するために使用されます。コントローラー コードは次のとおりです。

use thinkcaptchaacadeCaptcha;

class Index extends BaseController
{
    public function captcha()
    {
        return Captcha::create();
    }
}
ログイン後にコピー

上記のコードでは、ThinkPHP6 の静的呼び出しメソッドを使用して、Captcha::create() メソッドを通じて検証コードを直接生成します。生成された検証コードはバイナリ画像ストリームを返します。これは、テンプレートの タグを使用して直接表示できます。

  1. ページの表示

最後に、ページ上で タグを使用して、生成された確認コードを表示し、確認コードを送信する必要があります。フォームが送信され、一緒にサーバーに渡されます。コードは次のとおりです。

<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 サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート