ホームページ >PHPフレームワーク >ThinkPHP >ThinkPHPフレームワークの検証コードの詳細説明

ThinkPHPフレームワークの検証コードの詳細説明

藏色散人
藏色散人転載
2020-10-28 15:35:364250ブラウズ

以下は、ThinkPHP のチュートリアル コラムで、ThinkPHP フレームワークの検証コードを紹介します。

Think\Verify クラスは、検証コードの生成および検証機能をサポートできます。

次は、確認コードを生成する最も簡単な方法です:

$Verify = new \Think\Verify();$Verify->entry();

上記のコードは、以下に示すように、デフォルトの確認コード イメージを生成して出力します。

生成された確認コード情報はセッションに保存され、含まれるデータは次のとおりです:

array('verify_code'=>'当前验证码的值','verify_time'=>'验证码生成的时间戳')

1 ページで複数の確認コードを生成する必要がある場合は、エントリメソッドは識別された情報を渡す必要があります。

検証コード パラメータ

生成された検証コードに関連するパラメータを設定して、さまざまな表示効果を実現できます。これらのパラメータには次のものが含まれます:

#fontSize検証コードのフォント サイズ (ピクセル) デフォルトは 25useCurve混同曲線を使用するかどうか、デフォルトは trueuseNoiseデフォルトでノイズ ポイントを追加するかどうかは trueimageW検証コード幅自動計算のために 0 に設定されますimageH自動計算のために検証コードの高さを 0 に設定しますlength認証コードの数字fontttf指定された認証コードのフォントはデフォルトでランダム取得になりますuseZh中国語の認証コードを使用するかどうかbg認証コードの背景色の rgb 配列設定 (array(243, 251, 254) など)seKey検証コードの暗号化キーcodeSet検証コード文字セット 3.2.1 新規追加zhSet検証コード文字セット (中国語) 3.2.1 追加
Parameter Description
expire 認証コードの有効期間(秒)
useImgBg 背景画像を使用するかどうか、デフォルトは false

Default パラメータ設定:

パラメータ設定には 2 つの方法があります。

受信パラメータをインスタンス化します:

または、次のような動的設定を使用します:

Verification code font

デフォルトでは、検証コードのフォントは、

ThinkPHP/Library/Think/Verify/ttfs/ ディレクトリ内のフォント ファイルでランダムに使用されます。検証コード。例:

$Verify = new \Think\Verify();// 验证码字体使用 ThinkPHP/Library/Think/Verify/ttfs/5.ttf$Verify->fontttf = '5.ttf';$Verify->entry();
背景画像

は検証コードの背景画像関数をサポートしており、次のように設定できます:

$Verify = new \Think\Verify();// 开启验证码背景图片功能 随机使用 ThinkPHP/Library/Think/Verify/bgs 目录下面的图片$Verify->useImgBg = true;$Verify->entry();
中国語の検証コード

中国語の認証コードを使用したい場合は、次のように設定できます:

$Verify = new \Think\Verify();// 验证码字体使用 ThinkPHP/Library/Think/Verify/zhttfs/simhei.ttf$Verify->useZh = true;$Verify->entry();
表示効果は次のとおりです:

それができない場合は、正常に表示されますので、ThinkPHP/Library/Think/Verify/zhttfs をご確認ください。 / ディレクトリ下に中国語フォントファイルがあります。

ThinkPHP/Library/Think/Verify/zhttfs/ に中国語フォント ファイルがない場合は、C:\Windows\Fonts\ から中国語フォント ファイルをダウンロードまたはコピーできます。フォント ファイルの拡張子は.ttf 。

検証コードの検出

Think\Verify クラスの

check メソッドを使用して、検証コードの入力が正しいかどうかを確認できます。たとえば、次のようになります。は、検証コード検出用のカプセル化された関数です。 :

// 检测输入的验证码是否正确,$code为用户输入的验证码字符串function check_verify($code, $id = ''){$verify = new \Think\Verify();return $verify->check($code, $id);
}
演習: ログインを例に挙げます:

Controller メソッド:

<?php
namespace Home\Controller;use Think\Controller;class LoginController extends Controller
{    function Login()
    {        if(empty($_POST))
        {            $this->display();    
        }    
        else
        {            $code = $_POST["yzm"];             $verify = new \Think\Verify();           if($verify->check($code,2)) //code是用户输入的值 ,2是验证码检测标示,必须与生成的验证码标示相同才能验证            {                if($_POST["uid"]!="" && $_POST["pwd"]!="")
                {                    $model = D("Users");                    $uid = $_POST["uid"];    
                    $pwd = $_POST["pwd"];                    $attr = $model->field("Pwd")->find($uid);                    //var_dump($attr);
                    if($pwd==$attr["pwd"])
                    {
                        session("uid",$uid);   // 跳转页面之前将$uid存入session                    $this->success("登录成功!","Main");                                            }                    else
                    {                        $this->error("登录失败!");    
                    }
                }                else
                    {                        $this->error("用户名或者密码不能为空!");    
                    }
            }            else
            {                $this->error("验证码不正确!");    
            }
        }        
    }//生成验证码的操作方法
    function yzm()
    {        $config =    array(    
            'fontSize'    =>    30,    // 验证码字体大小    
            'length'      =>    4,     // 验证码位数  
            'useCurve'    =>    true,  // 是否画混淆曲线  
            'useNoise'    =>    true,  // 关闭验证码杂点
            'expire'      =>    60,    // 验证码有效期(秒)
            'useImgBg'    =>    false,  // 使用背景图片
            'useZh'       =>    true,  // 使用中文验证码
            'imageW'      =>    240,   // 验证码宽度
            'imageH'      =>    60,    // 验证码高度
            'fontttf'     =>    'simhei.ttf', // 验证码字体        );        $Verify = new \Think\Verify($config);        $Verify->entry(2);//参数是生成验证码的标示,适用于同一个页面有多个验证码的时候,生成验证码的标示必须与检测验证码的标示相同,否则验证码不正确    }?>
Request Login メソッド:

以上がThinkPHPフレームワークの検証コードの詳細説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcnblogs.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。