php生成純數字、字母數字、圖片、純漢字的隨機數驗證碼


  現在講開始通過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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM