ThinkPHP6プロジェクトの基本操作(12.実際の戦闘部分の検証コード)


TP6には検証コードプラグインが内蔵されており、簡単なインストールと設定でしか使用できず、検証コードの検証も非常に便利です。パフォーマンスを始めましょう。

1.確認コードをインストールします

composer require topthink/think-captcha

次に、テンプレートで使用します

元の静的ページの検証コードイメージを{:captcha_img()}これに置き換えると、検証コードイメージが自動的に生成されます。

<div style="margin-left: 10px;">
  {:captcha_img()}
</div>

生成されるhtmlコードは次のとおりです。

<img src="/captcha.html?0.12285642498823002" alt="captcha" onclick="this.src=&quot;/captcha.html?&quot;+Math.random();">

生成されたコードからわかるように、画像をクリックして画像を切り替えます。生成された画像:
ここに写真の説明を挿入

画像が出ない場合は、パスが正しいか、ルートが正しいかを確認してください。ブラウザに直接アクセスhttp://tp6.com/captchaすると、QRコードも表示されます。表示されない場合は、ルーティングの正確さを考慮してください。

3、検証コードの構成を変更します

configカタログ新captcha.php

<?php

return [
    'length' => 4,
    'codeSet'   =>  '0123456789',
    'useCurve' => false
];

ここに写真の説明を挿入

特定の構成可能な項目:

パラメータ 説明 デフォルト
codeSet 検証コードの文字セット 少し
期限切れ 検証コードの有効期限 1800
数学 算術検証コードを使用する false
useZh 中国の確認コードを使用する false
zhSet 中国の検証コード文字列 少し
useImgBg 背景画像を使用する false
フォントサイズ 検証コードのフォントサイズ(px) 25
useCurve 混同曲線を描くかどうか true
useNoise ノイズを追加するかどうか true
imageH 自動計算のために0に設定された検証コードイメージの高さ 0
imageW 自動計算の場合は0に設定された検証コードの画像幅 0
長さ 検証コードの数字 5
fontttf 検証コードフォント、設定されていない場合はランダムアクセス 空気
bg 背景色 [243、251、254]
リセット 検証が成功した後にリセットするかどうか true

4つのカスタム検証コード

1.作成

デフォルトのメソッドを使用することに加え{:captcha_img()}て、think\captcha\facade\Captchaクラスを介して自分で確認コードを作成することもできます。

<?php

namespace app\admin\controller;
use think\captcha\facade\Captcha;

class Verify
{
    
    
    public function index(){
    
    
        return Captcha::create();
    }
}

検証コードは、このコントローラーを介して通常どおり返すこともできます。
ここに写真の説明を挿入

2.構成

カスタム検証コードも構成できます。config/captcha.phpファイルで構成定義し、作成時に構成キーを渡すことができます
captcha.php::

<?php

return [
    'length' => 4,
    'codeSet'   =>  '0123456789',
    'useCurve' => false,
	// 配置名称可以随意取
    'my_set' => [
        'length' => 3,
        'codeSet' => 'abcdefg'
    ]
];

Verifyコントローラを変更します。

return Captcha::create('my_set');

秀一下:
ここに写真の説明を挿入

3.使用する

<img src="{:url('verify/index')}" class="layadmin-user-login-codeimg">

クリックして確認コードを切り替える場合は、onclickイベントを追加して、元のメソッドを模倣できます。

5、検証

フレームワークの組み込み検証機能:

$this->validate($data,[
    'captcha|验证码'=>'require|captcha'
]);

組み込みの検証機能を使用していない場合は、組み込みの機能を調べて手動で検証することができます。

if(!captcha_check($captcha)){
    
    
 // 验证失败
};

TP6デフォルトSessionは有効になっいないことに注意してください。独自に開く必要があります。ここではCAPTCHAがsession機能する必要があるため、ミドルウェアがアプリディレクトリ内のファイルを変更するmiddleware.php\think\middleware\SessionInit::classコメントが表示されます。

おすすめ

転載: blog.csdn.net/zy1281539626/article/details/110586868