利用php依賴的gd庫可以輕鬆實現驗證碼
驗證碼生成步驟:
1、生成底圖
利用imagecreatetruecolor()方法生成底圖。
函式解釋:
imagecreatetruecolor — 新建乙個真彩色影象
說明:
resource imagecreatetruecolor ( int wi
dth,
int height )
imagecreatetruecolor() 返回乙個影象識別符號,代表了一幅大小為 x_size 和 y_size 的黑色影象。
imagecolorallocate — 為一幅影象分配顏色 int imagecolorallocate( resource im
age,
int red , int gr
een,
int blue )
說明:
imagecolorallocate() 返回乙個識別符號,代表了由給定的 rgb 成分組成的顏色。red,green 和 blue 分別是所需要的顏色的紅,綠,藍成分。這些引數是 0 到 255 的整數或者十六進製制的 0x00 到 0xff。imagecolorallocate() 必須被呼叫以建立每一種用在 image 所代表的影象中的顏色。
$image = imagecreatetruecolor(100,30); //生成一張100*30px大小的
$bgcolor = imagecolorallocate($image,255,255,255); //改變底色 白色
imagefill( $image,0,0,$bgcolor); //填充底色
2、生成驗證內容
利用隨機數配合迴圈進行隨機驗證碼的生成(包括數字驗證碼以及字幕數字混合驗證碼)
$capth_code = '';
for($i=0;$i
<4;$i++) //生成字母 數字混合體驗證碼
$_session['authcode'] = $capth_code;
3、生成驗證碼
利用imagepng生成(當然還有其他樣式可選)
函式解釋:
imagepng — 以 png 格式將影象輸出到瀏覽器或檔案
說明 bool imagepng ( resource im
age[
,str
ing filename ] )
imagepng() 將 gd 影象流(image)以 png 格式輸出到標準輸出(通常為瀏覽器),或者如果用 filename 給出了檔名則將其輸出到該檔案。
header( 'content-type: image/png' ); //一定需要提前輸出的header資訊
imagepng( $image );
4、校驗驗證內容
利用php中的session會話變數進行驗證碼的儲存和校驗。
以下**的實現首先要依賴於php中已經安裝有gd庫。所以在使用下列**時需要驗證你的php是否已經整合了gd庫。可利用phpinfo()檢視。
<?php
/** * author: helen
* createtime: 2015/9/22
19:54
* description:驗證碼的製作
*/ session_start();
$image = imagecreatetruecolor(100,30); //生成一張100
*30px大小的
$bgcolor = imagecolorallocate($image,255,255,255); //改變底色 白色
imagefill( $image,0,0,$bgcolor); //填充底色
/*for($i=0;$i
<4;$i++) //生成隨機四位數字
*/$capth_code = '';
for($i=0;$i
<4;$i++) //生成字母 數字混合體驗證碼
$_session['authcode'] = $capth_code;
for($i=1;$i
<200;$i++) //生成點干擾元素
for($i=0;$i
<3;$i++) //生成線干擾元素
header( 'content-type: image/png' ); //一定需要提前輸出的header資訊
imagepng( $image );
//指令碼結束,清除驗證碼
imagedestroy( $image );
?>
PHP實現驗證碼
目前,不少 為了防止使用者利用機械人自動註冊 登入 灌水,都採用了驗證碼技術。所謂驗證碼,就是將一串隨機產生的數字或符號,生成一幅,裡加上一些干擾象素 防止 ocr 由使用者肉眼識別其中的驗證碼資訊,輸入表單提交 驗證,驗證成功後才能使用某項功能。我們這裡展示了如何編寫 php程式實現驗證碼功能 一...
php實現驗證碼
繪製驗證碼 num 5 str getcode num,2 建立畫布 width num 20 height 30 im imagecreatetruecolor width,height color 0 imagecolorallocate im,100,18,199 color 1 imagec...
PHP實現驗證碼
建立並設定大小 image imagecreatetruecolor 100,30 設定驗證碼顏色 方法 imagecolorallocate 物件,int red,int green,int blue bgcolor imagecolorallocate image,190,234,239 設定為...