標籤:header session 數字 顏色 處理 head 產生 php and
在畫圖裡面,就像之前所說的。php的畫圖是真正動態畫圖,儘管自己承認會出的圖是非常不好看的。但我們主要關注的應該還是資料處理。
驗證碼我們差點兒無處不見,它的產生和畫圖技術是密不可分的。事實上,簡單的驗證碼繪製出來是非常easy的,就像以下的一段代碼就能夠繪製出包括字母和數位元素:
<?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);?>
php畫圖應用之驗證碼