現在講開始通過PHP生成各種驗證碼旅途,新手要開車了,請刷卡!
首先,我們開始先生成一個放驗證碼的背景圖片

注:沒有Imagejpg()這個函數,只有imagepng()函數
imagecreatetruecolor()函數含義

效果

考慮到我們一般驗證碼的背景圖片為白色,那么我們現在就把背景圖片改一下

效果

相關函數意思


注:在輸出圖片之前,我們必須要生成header(“Content-type:image/png”),即告訴服務器輸出的是圖片
一、生成純數字驗證碼
1、產生數字的代碼部分

效果

相關函數

將數字的顏色設置為隨機的

效果

注:控制好字體大小和分布,避免字體重疊或字體顯示不全(即控制好x和y軸的定義)
2、增加干擾元素(點元素)
代碼部分

效果

相關函數

3、添加干擾元素(線元素)

效果

相關函數

注:干擾信息一定要控制好顏色,避免顏色吧數字給遮住了
二、生成字母數字的驗證碼
1、先把純數字的相關設置給注釋掉,避免干擾
代碼部分

效果

提示:我們可以把顯示的內容進行篩選,比如數字0和字母o是相似的,可以刪掉(字母l和數字1,字母z和數字2),讓用戶有更好的體驗
注:有時候我們進行篩選會出現篩選一個空內容出來,就會出現驗證碼只有三個或三個以下的字符出現,那么我們可以進行避免

三、通過seseion存儲用戶驗證信息
1、 首先,我們都知道,在我們要用session進行存儲信息時,我們都要在php文件中的最頂部進行session的開啟

其次,我們要用session進行存儲,那么:

2、驗證碼通過表單提交、進行校驗
表單代碼部分
注意:src屬性里面的驗證碼必須是單獨的生成驗證碼圖片文件,引入時必須是一個文件形式(.php)而不是直接圖片形式(.jpg),
因為生成驗證碼文件通過header語句設置整個文件成圖片形式,其他的所有相關的數據都將會失效。

效果

在用戶提交驗證碼之后,后台進行校驗的代碼(在form.php的頂端進行編寫)

測試


設置不區分大小寫驗證

四、動態校驗設計
1、代碼部分

注意:“看不清?”的功能中,+Math.random()是必須要有的,否則無效
效果

五、圖片驗證碼
1、代碼部分

2、前端部分


注意:“看不清?”的功能中,+Math.random()是必須要有的,否則無效
效果



六、漢字驗證碼
1、漢字驗證碼與字母數字驗證碼類似,稍作修改就好,代碼部分

效果

前端部分


效果


2、需要漢字內容較多情況

前端不變
效果


相關函數


注:在選擇字體樣式的時候要選擇支持中文的,比如簡體、粗體之類
以上就是相關的驗證碼的實現內容了,你學會了嗎!!!加油
END
