ホームページ >PHPフレームワーク >ThinkPHP >thinkphp 検証コードの実装について話し合う

thinkphp 検証コードの実装について話し合う

PHPz
PHPzオリジナル
2023-04-17 10:29:44702ブラウズ

インターネット技術の発展に伴い、検証コードの適用はますます普及しており、悪意のある登録、コメント、クローラー、その他のロボットの動作を効果的に防止し、Web サイトのセキュリティと正常な動作を確保します。検証コードの機能をよりよく理解するために、thinkphp 検証コードの実装について説明します。

1. 検証コードの概念と機能

検証コード(正式名称:Completely Automated Public Turing test to Tell Computers and Humans Apart)とは、コンピュータプログラムと人間を自動的に区別する公開テストです。全自動逆チューリングテストは、ユーザーが機械であるか人間であるかを識別するために使用される技術です。検証コードは、登録、ログイン、コメント、検索、投票、クローラ、その他のシナリオを含めて広く使用されており、インターネットのセキュリティにおいて重要な役割を果たしています。

2. thinkphp 検証コードの実装手順

  1. thinkcaptcha のインストール

まず、thinkcaptcha 拡張パッケージを thinkphp にインストールする必要があります。次のコマンド インストール:composer require topthink/think-captcha

  1. config.php ファイルの設定

アプリケーション フォルダーで、config.php ファイルを見つけます。次のコードが表示されます。

//验证码
'captcha' => [
    // 验证码字符集合
    'codeSet' => '2345678abcdefhijkmnpqrstuvwxyzABCDEFGHJKLMNPQRTUVWXY',
    // 验证码字体大小(px),根据所需进行设置验证码字体大小
    'fontSize' => 25,
    // 是否画混淆曲线
    'useCurve' => true,
    // 验证码图片高度,根据所需进行设置验证码图片高度
    'imageH' => 50,
    // 验证码图片宽度,根据所需进行设置验证码图片宽度
    'imageW' => 150,
    // 验证码位数,根据所需进行设置验证码位数
    'length' => 4,
    // 验证成功后是否重置
    'reset' => true
]

ニーズに応じて、パーソナライズされた設定のパラメータを変更できます。

  1. コントローラーで検証コード メソッドを呼び出す
use think\captcha\Captcha;

class Index
{
   public function verify()
   {
      $config = [
         'codeSet' => '0123456789',
         'useZh'   => false,
         'fontSize'=> 20, 
         'length' => 4,
         'useNoise' => false,
      ]; //验证码配置
      $captcha = new Captcha($config);
      return $captcha->entry(); 
   }
}

上記のコンテンツでは、$config を使用して検証コード パラメーターを設定します。たとえば、codeSet はオプションの文字です。 set、useZhは中国語を有効にするかどうか、fontSizeは検証コードのフォントサイズ、lengthは検証コードの桁数、useNoiseは干渉線を有効にするかどうかなど、

  1. ビューで検証コードを呼び出す

検証コードの使用が必要なフォームでは、次のコードを通じて検証コードを呼び出すことができます:

<form method="post">
   <input type="text" name="captcha" placeholder="Captcha" class="form-control">
   <?php echo captcha_img(); ?>
</form>

captcha_img() メソッドは、thinkcaptcha 拡張パッケージに付属する検証コード出力メソッドで、生成された検証コードを直接出力するために使用できます。

  1. 検証コードの検証

最後に、バックエンドで検証コードを検証する必要があります。ユーザーが入力した検証コードが生成された検証コードと一致しない場合は、検証は失敗します。

use think\captcha\Captcha;

class Index
{
   public function login()
   {
      $captcha = new Captcha();
      if (!$captcha->check(input('code'))) {
         $this->error('验证码错误');
      } else {
         //其他业务逻辑
      }
   }
}

上記のコードでは、$captcha->check(input('code')) は、ユーザーが入力した検証コードが生成された検証コードと一致するかどうかを検出するために使用されます。 、プロンプトがポップアップ表示されます。

3. 概要

検証コードはウェブサイトのセキュリティを確保する上で重要な部分であるため、thinkphp には豊富な検証コード機能も用意されています。構成パラメータとメソッドを呼び出すときは、検証コードの実装とビジネス ロジックを組み合わせて、Web サイトのセキュリティと健全な開発を保護するために検証コードの利点をうまく活用する必要もあります。

以上がthinkphp 検証コードの実装について話し合うの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。