中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

ThinkPHP框架之驗證碼的使用案例

發布時間:2021-03-06 10:11:45 來源:億速云 閱讀:185 作者:小新 欄目:編程語言

這篇文章主要介紹了ThinkPHP框架之驗證碼的使用案例,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

Think\Verify類可以支持驗證碼的生成和驗證功能。

下面是最簡單的方式生成驗證碼:

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

上面的代碼會生成默認的驗證碼圖片并輸出,顯示如下:

ThinkPHP框架之驗證碼的使用案例

生成的驗證碼信息會保存到session中,包含的數據有:

array('verify_code'=>'當前驗證碼的值','verify_time'=>'驗證碼生成的時間戳')

如果你需要在一個頁面中生成多個驗證碼的話,entry方法需要傳入可標識的信息。

驗證碼參數

可以對生成的驗證碼設置相關的參數,以達到不同的顯示效果。這些參數包括:

參數描述
expire驗證碼的有效期(秒)
useImgBg是否使用背景圖片 默認為false
fontSize驗證碼字體大小(像素) 默認為25
useCurve是否使用混淆曲線 默認為true
useNoise是否添加雜點 默認為true
imageW驗證碼寬度 設置為0為自動計算
imageH驗證碼高度 設置為0為自動計算
length驗證碼位數
fontttf指定驗證碼字體 默認為隨機獲取
useZh是否使用中文驗證碼
bg驗證碼背景顏色 rgb數組設置,例如 array(243, 251, 254)
seKey驗證碼的加密密鑰
codeSet驗證碼字符集合 3.2.1 新增
zhSet驗證碼字符集合(中文) 3.2.1 新增

默認參數配置:

ThinkPHP框架之驗證碼的使用案例

參數設置使用兩種方式。

實例化傳入參數:

ThinkPHP框架之驗證碼的使用案例

或者采用動態設置的方式,如:

ThinkPHP框架之驗證碼的使用案例

驗證碼字體

默認情況下,驗證碼的字體是隨機使用 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框架之驗證碼的使用案例

如果無法正常顯示,請確認你的 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);
}

練習:以登錄為例:

控制器方法:

<?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);//參數是生成驗證碼的標示,適用于同一個頁面有多個驗證碼的時候,生成驗證碼的標示必須與檢測驗證碼的標示相同,否則驗證碼不正確    }?>

請求Login方法:

ThinkPHP框架之驗證碼的使用案例

感謝你能夠認真閱讀完這篇文章,希望小編分享的“ThinkPHP框架之驗證碼的使用案例”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

伊通| 皋兰县| 石景山区| 漳平市| 拉萨市| 中卫市| 白银市| 增城市| 孝昌县| 孝义市| 祁东县| 太仆寺旗| 巴塘县| 九江县| 施甸县| 林口县| 巩义市| 黔江区| 印江| 博野县| 二连浩特市| 贺兰县| 宽城| 平谷区| 五大连池市| 安丘市| 钦州市| 龙州县| 西林县| 景德镇市| 松潘县| 泸州市| 鄂尔多斯市| 沈阳市| 武功县| 清远市| 德惠市| 弥渡县| 文登市| 屏南县| 玛多县|