欧类av怡春院_久久久久成人网站_亚洲国产一区在线_免费在线观看污_97热在线精品视频在线观看_久久久久久色_涩涩涩999_免费不卡欧美自拍视频_亚洲精品国产无天堂网2021_中文字幕av专区_欧美成va人片在线观看_精品视频第一页


待發短信

在線客服
產品支持 短信寶客服
合作渠道 渠道合作
服務咨詢

4001-021-502

工作時間

9:00-21:00

短信寶短信驗證碼開發教程 – 3.圖形驗證碼篇

前面的文章已經把準備工作都做好了,我們做了注冊頁面,配置文件,工具文件等基礎功能,接下來就進入短信驗證碼開發的關鍵階段,來帶領大家完成驗證碼圖片的制作,以及前臺在頁面上的調用。

驗證碼開發主要有這么幾個部分:創建一個圖片畫布,生成隨機的驗證碼,把驗證碼放到畫布上,生成干擾線,最后輸出圖片。下面上代碼:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
<?php
class Code{
    //資源
    private $img;
    //畫布寬度
    private $width=100;
    //畫布高度
    private $height=30;
    //背景顏色
    private $bgColor='#ffffff';
    //驗證碼
    private $code;
    //驗證碼的隨機種子
    private $codeStr='23456789abcdefghjkmnpqrstuvwsyz';
    //驗證碼長度
    private $codeLen=4;
    //驗證碼字體
    private $font;
    //驗證碼字體大小
    private $fontSize=16;
    //驗證碼字體顏色
    private $fontColor='';
 
    public function __construct() {
    }
 
    //創建驗證碼
    public function make()
    {
        if(empty($this->font))
        {
            $this->font = __DIR__ . '/../font/consola.ttf';
        }
        $this->create();//生成驗證碼
        header("Content-type:image/png");
        imagepng($this->img);
        imagedestroy($this->img);
        exit;
    }
 
    //設置字體文件
    public function font($font)
    {
        $this->font= $font;
        return $this;
    }
 
    //設置文字大小
    public function fontSize($fontSize)
    {
        $this->fontSize=$fontSize;
        return $this;
    }
 
    //設置字體顏色
    public function fontColor($fontColor)
    {
        $this->fontColor = $fontColor;
        return $this;
    }
 
    //驗證碼數量
    public function num($num)
    {
        $this->codeLen=$num;
        return $this;
    }
 
    //設置寬度
    public function width($width)
    {
        $this->width = $width;
        return $this;
    }
 
    //設置高度
    public function height($height)
    {
        $this->height = $height;
        return $this;
    }
 
    //設置背景顏色
    public function background($color)
    {
        $this->bgColor = $color;
        return $this;
    }
 
    //返回驗證碼
    public function get() {
        return $_SESSION['code'];
    }
 
    //生成驗證碼
    private function createCode() {
        $code '';
        for ($i = 0; $i $this->codeLen; $i++) {
            $code .= $this->codeStr [mt_rand(0, strlen($this->codeStr) - 1)];
        }
        $this->code = strtoupper($code);
        $_SESSION['code'] = $this->code;
    }
 
    //建畫布
    private function create() {
        if (!$this->checkGD())
            return false;
        $w $this->width;
        $h $this->height;
        $bgColor $this->bgColor;
        $img = imagecreatetruecolor($w$h);
        $bgColor = imagecolorallocate($img, hexdec(substr($bgColor, 1, 2)), hexdec(substr($bgColor, 3, 2)), hexdec(substr($bgColor, 5, 2)));
        imagefill($img, 0, 0, $bgColor);
        $this->img = $img;
        $this->createLine();
        $this->createFont();
        $this->createPix();
        $this->createRec();
    }
 
    //畫線
    private function createLine(){
        $w $this->width;
        $h $this->height;
        $line_color "#dcdcdc";
        $color = imagecolorallocate($this->img, hexdec(substr($line_color, 1, 2)), hexdec(substr($line_color, 3, 2)), hexdec(substr($line_color, 5, 2)));
        $l $h/5;
        for($i=1;$i<$l;$i++){
            $step =$i*5;
            imageline($this->img, 0, $step$w,$step$color);
        }
        $l$w/10;
        for($i=1;$i<$l;$i++){
            $step =$i*10;
            imageline($this->img, $step, 0, $step,$h$color);
        }
    }
 
    //畫矩形邊框
    private function createRec() {
            //imagerectangle($this->img, 0, 0, $this->width - 1, $this->height - 1, $this->fontColor);
    }
 
    //寫入驗證碼文字
    private function createFont() {
        $this->createCode();
        $color $this->fontColor;
        if (!empty($color)) {
            $fontColor = imagecolorallocate($this->img, hexdec(substr($color, 1, 2)), hexdec(substr($color, 3, 2)), hexdec(substr($color, 5, 2)));
        }
        $x = ($this->width - 10) / $this->codeLen;
        for ($i = 0; $i $this->codeLen; $i++) {
            if (empty($color)) {
                $fontColor = imagecolorallocate($this->img, mt_rand(50, 155), mt_rand(50, 155), mt_rand(50, 155));
            }
            imagettftext($this->img, $this->fontSize, mt_rand(- 30, 30), $x $i + mt_rand(6, 10), mt_rand($this->height / 1.3, $this->height - 5), $fontColor$this->font, $this->code [$i]);
        }
        $this->fontColor = $fontColor;
    }
 
    //畫線
    private function createPix() {
        $pix_color $this->fontColor;
        for ($i = 0; $i < 50; $i++) {
            imagesetpixel($this->img, mt_rand(0, $this->width), mt_rand(0, $this->height), $pix_color);
        }
 
        for ($i = 0; $i < 2; $i++) {
            imageline($this->img, mt_rand(0, $this->width), mt_rand(0, $this->height), mt_rand(0, $this->width), mt_rand(0, $this->height), $pix_color);
        }
        //畫圓弧
        for ($i = 0; $i < 1; $i++) {
            // 設置畫線寬度
            imagearc($this->img, mt_rand(0, $this->width), mt_rand(0, $this->height), mt_rand(0, $this->width), mt_rand(0, $this->height)
                        , mt_rand(0, 160), mt_rand(0, 200), $pix_color);
        }
        imagesetthickness($this->img, 1);
    }
 
    //驗證GD庫
    private function checkGD() {
        return extension_loaded('gd') && function_exists("imagepng");
    }
}

好了,這樣圖形驗證碼類制作好了。接下來我們來做一個調用文件,用于把圖形驗證碼展示出來。 在sms/tool下創建showCode文件,代碼如下:

?
1
2
3
4
5
<?php
session_start(); // 開啟session會話
require('./Code.php'); // 引入驗證碼類文件
$code new Code(); // 實例化
$code->make(); // 調用驗證碼顯示方法來顯示

我們還需要完成最后一個步驟,就是在頁面上面展示圖形驗證碼。 打開在前面準備工作中創建的注冊文件register.php, 找到驗證碼這里,把代碼改成如下:

?
1
2
3
4
5
6
7
8
<div class="form-input">
    <label class="code_label">
        驗&ensp;證&ensp;碼&emsp;
        <input id="vcode" type="text" name="vcode" value=""/>
        <img id="code_img" src="./tool/show_code.php" onclick="this.src='./tool/show_code.php?'+Math.random()" />
        <p id="code_err" class="errmsg" style="margin:5px 0 0 88px; color:red;"></p>
    </label>
</div>

以上代碼我做一下解釋:在img標簽中,src引入了驗證碼圖片的展示類,把圖片直接展示在頁面上。添加onclick屬性的作用是點擊切換圖片。完成后在頁面上展示的效果如下:

圖形驗證碼制作完畢了,但是有一點要注意,在php.ini配置文件中,必須要打開GD庫。

開源插件

最新更新

電商類

CMS類

微信類

文章標簽
自拍偷拍第9页| 久久品道一品道久久精品| 亚洲人成精品久久久久| 一区二区在线视频| 日本一区二区三区四区在线观看| 玖草视频在线观看| 久久精品国产一区二区三| 欧美人动与zoxxxx乱| 成人精品一区二区三区| 性一交一黄一片| 日日欢夜夜爽一区| 日韩视频国产视频| 四虎永久在线精品免费一区二区| ass极品国模人体欣赏| av不卡一区二区三区| 一区国产精品视频| 青青青青草视频| 国产露脸91国语对白| 欧美性xxxx极品hd欧美风情| 国产男女猛烈无遮挡91| 99久久国产精| www激情久久| 欧美激情中文字幕在线| av中文字幕网址| 免费高清不卡av| 国产亚洲精品日韩| 国产又黄又大又粗视频| 国产18精品乱码免费看| 欧美一二三区在线观看| www.69av| 色窝窝无码一区二区三区成人网站| 91麻豆精品国产91久久久资源速度 | 国产又黄又猛又粗| 日韩成人av影视| 一区二区三区在线播放欧美| 日本久久久精品视频| 午夜黄色小视频| 亚洲欧洲免费视频| 五月婷婷狠狠操| 精品一区二区三区蜜桃| 久久亚洲国产成人| 无码人妻精品一区二区三| 国产精品一二三区在线| 欧美第一黄色网| 成人手机在线免费视频| 成人黄色777网| 国产精品久久久久久久久 | 天天操夜夜操很很操| 国产高清不卡一区二区| 91极品视频在线| 天堂资源在线视频| 香蕉乱码成人久久天堂爱免费| 精品麻豆av| 亚洲特级黄色片| 亚洲高清av在线| 久久婷婷综合色| 91在线视频播放地址| 国产精品高清网站| 久久高清免费视频| 欧美久久久久中文字幕| 久青草视频在线播放| 免费在线观看精品| 91国产视频在线| 久久人妻无码aⅴ毛片a片app| 一区二区欧美精品| 97超碰免费观看| 男人操女人的视频在线观看欧美| 欧美另类在线观看| www.涩涩爱| 色激情天天射综合网| 在线精品日韩| 色网站免费观看| 高清亚洲成在人网站天堂| 国产又粗又猛又爽又黄的视频四季 | 成人一区二区在线| 97超视频在线观看| 日韩在线视频网站| 成人精品999| 日韩欧美精品网址| 777av视频| 91丝袜高跟美女视频| 91国产在线免费观看| 96日本xxxxxⅹxxx17| 中文字幕免费精品一区高清| 亚洲激情视频小说| 欧美亚洲一区三区| 成人综合久久网| 亚洲女同一区二区| 久久av高潮av| 91农村精品一区二区在线| 国产亚洲一区二区三区在线播放| 黄色aaa大片| 国产精品xxx视频| 一级片视频播放| 欧美激情第三页| 日本少妇做爰全过程毛片| 欧美精品一区二| 疯狂揉花蒂控制高潮h| 日韩欧美一区二区三区| mm131亚洲精品| 亚洲国产成人91porn| av黄色在线网站| 中文字幕一区二区三区精华液| 亚洲啪啪av| 91在线国产观看| 一区二区三区国产福利| 成人av网站在线观看| 欧美国产一二三区| 国产成人综合在线观看| 欧美日产一区二区三区在线观看| 国产真实精品久久二三区| 成人区精品一区二区| 日本美女一区二区三区视频| 91视频99| 国产呦精品一区二区三区网站| 国产a一区二区| 韩国av一区二区三区四区| 欧美成人dvd在线视频| 国产一区二区中文字幕| 性刺激综合网| 国产日韩欧美在线一区| 一二三四视频社区在线| 亚洲一区在线播放| 天天干天天av| 欧美色视频一区| 日韩一级视频在线观看| 亚洲精品二三区| 日本在线视频免费观看| 久久琪琪电影院| 精品国自产在线观看| 亚洲影影院av| 成人综合在线网站| 91传媒免费视频| 亚洲蜜桃精久久久久久久| 色天使在线观看| 91.com在线观看| 天天色影综合网| 久久午夜a级毛片| 99久久久无码国产精品免费| 97se亚洲综合在线| 91在线视频网址| 中文字幕乱码人妻综合二区三区| 亚洲成人免费视频| 精品人妻一区二区三区视频| 亚洲乱码一区二区| 6—12呦国产精品| 国产精品免费区二区三区观看| 成人h动漫精品一区二| 国产精品沙发午睡系列| 欧美日本在线视频| 国产午夜在线播放| 成人精品福利视频| 91污在线观看| 天美一区二区三区| 国产亚洲精品美女久久久| 国产精品一区二区av白丝下载| 国产精品乱码| 亚洲欧洲精品天堂一级| yy6080午夜| 久久久精品2019中文字幕神马| 性欧美一区二区三区| 日韩av一区二区三区在线| 一区二区三区**美女毛片| 国产肥白大熟妇bbbb视频| 欧美美女操人视频| 久久激情五月婷婷| 欧美少妇性生活视频| 精品美女在线播放| 亚洲无码精品国产| 日本视频一区二区不卡| 亚洲高清在线精品| 久久精品一区二区三区四区五区| 日本精品久久电影| wwwwxxxxx欧美| 国内精品免费视频| 欧美精品在线免费| 日本欧美一区二区| 手机看片福利日韩| 中文字幕av一区| 日本怡春院一区二区| 亚洲美免无码中文字幕在线| 日韩一区二区在线观看视频| 国产精品xxxxxx| 日本一区不卡| 欧美日韩免费观看一区三区| 蜜臀99久久精品久久久久小说| 精品国产免费久久久久久尖叫 | 国产精品久久久久久久久免费桃花 | 僵尸世界大战2 在线播放| 欧美精品xxxxbbbb| 999国产精品视频免费| 正在播放91九色| 日韩视频在线观看一区二区| 国产裸体永久免费无遮挡| 美女黄色片网站| 欧美sm美女调教| 久久久久国产一区二区| 久久九九国产视频| 日韩亚洲精品视频| 不卡一卡二卡三乱码免费网站| 色91精品久久久久久久久| 欧美大尺度在线观看| 99精品视频一区| 69xxx免费| 黑人另类av| 欧美精品丝袜久久久中文字幕| 国产伦子伦对白视频| 成年人网站免费视频| 中文字幕日韩视频| 99精品视频免费在线观看| 国产三级aaa| 三级三级久久三级久久18| 欧美一级理论片| 青娱乐精品视频| 国产激情第一页| 亚洲xxxx视频| 欧美一区二区三区爱爱| 日本亚洲最大的色成网站www| 亚洲精品mv在线观看| 日本中文字幕久久看| 中文字幕一区二区三区在线不卡| 日韩精品人妻中文字幕| 污视频在线免费观看一区二区三区 | 日韩在线视频免费观看高清中文| av在线不卡免费看| 我要看黄色一级片| 色综合久久av| 在线观看亚洲视频| 久久夜色精品一区| 国产精品久久久久久99| 黄色三级中文字幕| 欧美精品videossex性护士| 中文字幕一区av| 中文字幕av影视| 岛国毛片在线播放| 91美女高潮出水| 6080午夜不卡| 精品一区二区在线观看| 免费观看特级毛片| 好吊色视频988gao在线观看| 久久国产精品电影| 午夜精品久久久久久久| 日本黄色三级视频| 精品人妻少妇嫩草av无码| 久久国产主播精品| 亚洲欧洲国产伦综合| 中文字幕精品在线不卡| 一区二区自拍偷拍| 永久看看免费大片| 欧美日韩高清免费| 久久精品久久精品亚洲人| 亚洲精品videosex极品| 国产综合在线播放| 97人妻精品一区二区三区免费| 久久爱av电影| 久久精品久久久久久国产 免费| 亚洲另类在线制服丝袜| 二区三区在线视频| 调教驯服丰满美艳麻麻在线视频| 在线观看日本一区| 欧洲美女7788成人免费视频| 欧美综合亚洲图片综合区| 国产中文一区二区三区| 800av免费在线观看| 国产乱叫456| 日日噜噜噜噜夜夜爽亚洲精品| 久久99久久亚洲国产| 欧美视频在线一区二区三区| 国产成人免费视| 久久久999久久久| 一区二区三区少妇| 999一区二区三区| 成人免费看吃奶视频网站| 亚洲成色777777在线观看影院| 国产清纯美女被跳蛋高潮一区二区久久w | 一本色道久久综合狠狠躁篇的优点 | 性色av香蕉一区二区| 欧美福利视频一区| 久久久三级国产网站| 成人毛片在线精品国产| 东方av正在进入| 精品亚洲一区二区三区四区| 欧美黑人3p| 午夜精品久久久久久久男人的天堂| 日本电影亚洲天堂一区| 99久久免费精品高清特色大片| 国产精品国产三级国产aⅴ| 国产aaaaaaaaa| 免费精品99久久国产综合精品应用| 欧美一级二级三级| 国产精品爱啪在线线免费观看| 亚洲免费av片| 欧美色窝79yyyycom| 国产精品欧美经典| 精品制服美女丁香| 99国产精品一区二区三区| 日本精品在线免费观看| 中国老熟女重囗味hdxx| www污在线观看| 狠狠色综合网站久久久久久久| 国语自产精品视频在线看| 亚洲国产精品久久久久秋霞不卡| 亚洲制服欧美中文字幕中文字幕| 丁香婷婷综合色啪| 日韩精品免费专区| 97久久人国产精品婷婷| 久艹视频在线观看| 一区二区精品免费| 亚洲高清av一区二区三区| 欧日韩免费视频| 先锋影音一区二区三区| 国产精品久久久一区二区三区| 欧美亚洲国产日韩2020| 久久久国产成人精品| 亚洲成人在线视频播放| 欧美日韩中文另类| 精品动漫一区二区三区| 综合久久综合久久| 久久综合九色综合97婷婷| 精品系列免费在线观看| 日韩中文字幕综合| 中文字幕免费视频观看| 久久高清免费视频| 三级影片在线看| 一区二区三区在线观看免费视频| 亚洲热在线视频| 男生操女生视频在线观看| 国产日韩一区二区在线观看| 在线观看欧美激情| 樱花www成人免费视频| 欧美日韩精品一区| 99久久久精品免费观看国产| 国产精品狼人色视频一区| 91精品国产99| 午夜精品久久久99热福利| 欧美不卡视频一区发布| 久久精品中文字幕电影| 色偷偷偷亚洲综合网另类| 亚洲色图第一页| 亚洲欧美中文日韩在线| 亚洲第一精品夜夜躁人人爽| 精品久久久久久久久久久院品网 | 久久不卡免费视频| 黄色小视频在线免费看| 久久久久久久福利| 国产乡下妇女做爰| 国产精品xxxx喷水欧美| 可以在线观看av的网站| 久久国产黄色片| 欧美一区二区三区网站| 波多野结衣绝顶大高潮| 国产精品免费无遮挡无码永久视频| 精品91久久久| 亚洲欧美一二三区| 国产日韩一级片| 欧美一级在线免费观看| 日韩中文字幕av电影| 麻豆国产精品视频| 国产成人亚洲综合a∨婷婷图片| 高清不卡在线观看| 久久久久久久网| 亚洲欧洲另类国产综合| 激情成人中文字幕| 欧美精品国产精品| 亚洲精品一区中文| 久久av在线看| 欧美一区亚洲一区| 成人亚洲欧美一区二区三区| 国产精品成人一区二区三区| 久久视频在线观看中文字幕| 蜜桃av噜噜一区二区三区| 看全色黄大色大片| www.欧美日本| 在线黄色免费网站| 黄色录像二级片| 超碰在线免费97| 五月婷婷丁香网| 成人激情午夜影院| 一区二区三区四区av| 欧美综合一区二区三区| 亚洲精美色品网站| 欧美高清在线视频观看不卡| 国产精品久久久久久亚洲影视| 国产高清一区二区三区| 自拍另类欧美| 日韩欧美国产片| av片在线免费看| 久久久久久av无码免费看大片| 成人小说亚洲一区二区三区 | 蜜臀av一区二区三区| 91免费看片在线观看| 午夜精品影院在线观看| 精品人伦一区二区色婷婷| 久久人人爽人人爽人人片亚洲| 国产欧美一区二区三区久久| 日韩欧美精品在线不卡| 白嫩少妇丰满一区二区| 中文字幕高清视频| www.久久久久久久| 久色成人在线| 欧美激情一区二区三区在线| 91高清在线观看| 精品国产一区二区三区久久久狼 | 久久精品二区| 日韩视频第二页| 国产美女高潮视频| 欧美一级特黄aaaaaa| 国产女人水真多18毛片18精品视频| 欧美日韩和欧美的一区二区| 欧美久久久精品|