Rumah  >  Artikel  >  rangka kerja php  >  Cara memasang pemalam kod pengesahan ThinkPHP

Cara memasang pemalam kod pengesahan ThinkPHP

WBOY
WBOYke hadapan
2023-06-02 21:08:371115semak imbas

Kita perlu membuka laman web rasmi ThinkPHP terlebih dahulu dan mencari kandungan yang berkaitan dengan kod pengesahan. Kami boleh menemui beberapa dokumen yang memperkenalkan kod pengesahan dan telah membangunkan pemalam kod pengesahan dalam hasil carian. Artikel ini akan memperkenalkan dua kaedah penyepaduan kod pengesahan: menggunakan pemalam kod pengesahan yang disediakan secara rasmi dan menulis kod secara manual.

1. Gunakan pemalam kod pengesahan rasmi

Dalam dokumentasi rasmi, kita boleh mencari cara menggunakan pemalam kod pengesahan ThinkPHP. Untuk menggunakan pemalam rasmi, anda perlu melakukan langkah berikut:

1.1 Cipta folder Verify baharu dalam direktori lanjutan rangka kerja ThinkPHP dan masukkan pemalam kod pengesahan yang dimuat turun ke dalamnya.

1.2 Lihat fail konfigurasi ThinkPHP dan halakan item konfigurasi kod pengesahan ke folder tempat pemalam kod pengesahan baru diletakkan. Kod khusus adalah seperti berikut:

'verify' =>[
    //使用中文验证码
    'useZh'=>false,
    //验证码字体大小(px)
    'fontSize'=>25,
    //验证码位数
    'length'=>5,
    //验证码图片宽度(像素)
    'imageW'=>0,
    //验证码图片高度(像素)
    'imageH'=>0,
    //关闭验证码杂点 
    'useNoise'=>true,
    //背景颜色(16进制色值)
    'bg'=>[243, 251, 254],
    //需要包含的字符集合
    'codeSet'=>'0123456789',
    //验证码字符间隔(px)
    'seKey'=>"ThinkPHP.CN_",//密钥
    ...
],

Perlu diingatkan bahawa parameter imageW dan imageH boleh ditetapkan mengikut situasi sebenar. Jika tidak ditetapkan, saiz imej kod pengesahan akan sama dengan saiz imej output secara lalai.

1.3 Di mana sahaja kod pengesahan perlu dikeluarkan, gunakan kod berikut untuk menyepadukan pemalam kod pengesahan rasmi:

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

2 Tulis kod penjanaan kod pengesahan

Selain menggunakan pemalam rasmi, kami juga boleh menulis kod penjanaan kod pengesahan secara manual. Proses khusus adalah seperti berikut:

Pertama, kita perlu mencipta kelas kod pengesahan, yang mengandungi kaedah untuk menjana dan mengeluarkan kod pengesahan. Kod berikut ialah bahagian penting dalam kelas kod pengesahan kod tangan:

class VerifyCode
{
    //验证码字符长度
    private $length = 4;

    //验证码字符数组
    private $codes = [];

    //验证码生成
    public function generate()
    {   
        //生成字符数组
        $this->codes = [];
        for($i = 0; $i < $this->length; ++$i) {
            $this->codes[] = chr(mt_rand(48, 57));
        }

        //保存字符数组到session中
        session(&#39;verifycode&#39;, implode(&#39;&#39;, $this->codes));

        //开启输出缓存
        ob_start();
        header(&#39;Content-Type:/image/png&#39;);

        //创建验证码图片
        $image = imagecreate(100, 40);

        //设置画布背景颜色 
        $bg_color = imagecolorallocate($image, 238, 238, 238); 
        imagefill($image, 0, 0, $bg_color);

        //绘制验证码字符
        for($i = 0; $i < $this->length; ++$i) {
            $font_file = &#39;/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf&#39;;
            $text_color = imagecolorallocate(
                $image, mt_rand(0, 150), mt_rand(0, 150), mt_rand(0, 150));
            imagettftext($image, 24, mt_rand(-20, 20), 5 + $i * 25, 30, 
                         $text_color, $font_file, $this->codes[$i]);
        }

        //输出验证码图片
        imagepng($image);
        imagedestroy($image);
        $img = ob_get_contents();
        ob_end_clean();

        return $img;
    }
}

2.2 Gunakan kod berikut untuk menjana dan mengeluarkan kod pengesahan yang memerlukan kod pengesahan:

$vf = new VerifyCode();
echo $vf->generate();

Atas ialah kandungan terperinci Cara memasang pemalam kod pengesahan ThinkPHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam