php實作數位驗證碼的方法:1、透過imagecreatetruecolor函數實作驗證碼底圖;2、透過imagecolorallocate方法實現數位驗證碼;3、增加干擾元素;4、儲存驗證資訊即可。
本文操作環境:windows7系統、PHP7.1版、DELL G3電腦
#php怎麼實作數位驗證碼?
php實作數字驗證碼
用php實作驗證碼,驗證碼是為了區別機器與人的操作,提高安全性。需要安裝伺服器軟體,我使用的是wamp,之後再寫php驗證碼頁面。
分成以下幾個步驟來實現:
一、實作驗證碼底圖
目標:透過php程式碼,產生一張100*30px大小的圖片
方法:
resource imagecreatetruecolor(int $width,int $height)
注意事項:
(a)依賴GD擴充
(b)輸出圖片前,必須事先輸出圖片header訊息
(c)此方法預設輸出為黑色背景
//
二、實作數字驗證碼
方法:
int imagecolorallocate(resource $image,int $red ,int $green,int $blue);
bool imagestring(resource $image,int $font,int $x,int $y,string $s,int $col);
注意事項:/控制良好字體大小與分佈,避免字體重疊或顯示不全
//
三、增加干擾元素
目標:為驗證碼增加干擾元素,幹擾的點或線
方法:
bool imagesetpixel(resource $image,int $x,int $y,int $color);
bool imageline(resource $image,int $x1,int $y1,int $x2,int $y2,int $ color)
注意事項:幹擾訊息一定控制好顏色,避免「喧賓奪主」;
四、透過SESSION儲存驗證訊息
目標:在伺服器端記錄驗證碼訊息,便於使用者輸入後做校驗
方法:bool session_start(void)
注意事項:(a)session_start()必須處於腳本最頂端
(b)多伺服器情況,需要考慮集中管理session資訊
五、驗證碼透過表單提交、校驗
目標:將已產生的驗證碼提供給用戶,並校驗用戶驗證碼的正確性
方法:html