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="/captcha.html?"+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
コメントが表示されます。