php繪圖應用之驗證碼,php繪圖驗證碼
在繪圖裡面,就像之前所說的,php的繪圖是真正動態繪圖,雖然自己承認會出的圖是很不好看的,但我們主要關注的應該還是資料處理。
驗證碼我們幾乎無處不見,它的產生和繪圖技術是密不可分的,其實,簡單的驗證碼繪製出來是很簡單的,就像下面的一段代碼就可以繪製出包含字母和數位元素:
<?php$checkCode="";for($i=0; $i<=3;$i++){$checkCode.=dechex(rand(1,15));}session_start();$_SESSION['checkCode']=$checkCode;//建立畫布$img_1=imagecreatetruecolor(110, 30);$red=imagecolorallocate($img_1, 255, 0, 0);imagestring($img_1, 5, 0, 0, $checkCode, $red);header("Content-type: image/png");imagepng($img_1);imagedestroy($img_1);?>
上面的代碼只是簡單的說了一下驗證碼的繪製,其實代碼方面並沒有進行安全處理。
下面是相對的把驗證碼處理的相對複雜了一些:
<?php$checkCode="";for($i=0; $i<=3;$i++){$checkCode.=dechex(rand(1,15));}session_start();$_SESSION['checkCode']=$checkCode;//建立畫布$img_1=imagecreatetruecolor(70, 40);//必須是先建立畫布,在建立顏色。$red=imagecolorallocate($img_1, rand(0,255), rand(0,255), rand(0,255));for($k=0; $k<=20; $k++){imageline($img_1, rand(0,50),rand(0,30),0,0,0,0, imagecolorallocate($img_1, rand(0,255), rand(0,255), rand(0,255)));}imagestring($img_1, rand(3,7), rand(0,40), rand(0,20), $checkCode, $red);header("Content-type: image/png");imagepng($img_1);imagedestroy($img_1);?>