[php]<?php Header("Content-type:?image/gif"); /* *?初始化 */ $border?=?0;?//是否要邊框?1要:0不要 $how?=?4;?//驗(yàn)證碼位數(shù) $w?=?$how*15;?//圖片寬度 $h?=?20;?//圖片高度 $fontsize?=?5;?//字體大小 $alpha?=?"abcdefghijkmnopqrstuvwxyz";?//驗(yàn)證碼內(nèi)容1:字母 $number?=?"023456789";?//驗(yàn)證碼內(nèi)容2:數(shù)字 $randcode?=?"";?//驗(yàn)證碼字符串初始化 srand((double)microtime()*1000000);?//初始化隨機(jī)數(shù)種子 $im?=?ImageCreate($w,?$h);?//創(chuàng)建驗(yàn)證圖片 /* *?繪制基本框架 */ $bgcolor?=?ImageColorAllocate($im,?255,?255,?255);?//設(shè)置背景顏色 ImageFill($im,?0,?0,?$bgcolor);?//填充背景色 if($border) { ????$black?=?ImageColorAllocate($im,?0,?0,?0);?//設(shè)置邊框顏色 ????ImageRectangle($im,?0,?0,?$w-1,?$h-1,?$black);//繪制邊框 } /* *?逐位產(chǎn)生隨機(jī)字符 */ for($i=0;?$i<$how;?$i++) {??? ????$alpha_or_number?=?mt_rand(0,?1);?//字母還是數(shù)字 ????$str?=?$alpha_or_number???$alpha?:?$number; ????$which?=?mt_rand(0,?strlen($str)-1);?//取哪個(gè)字符 ????$code?=?substr($str,?$which,?1);?//取字符 ????$j?=?!$i???4?:?$j+15;?//繪字符位置 ????$color3?=?ImageColorAllocate($im,?mt_rand(0,100),?mt_rand(0,100),?mt_rand(0,100));?//字符隨即顏色 ????ImageChar($im,?$fontsize,?$j,?3,?$code,?$color3);?//繪字符 ????$randcode?.=?$code;?//逐位加入驗(yàn)證碼字符串 } /* *?添加干擾 */ for($i=0;?$i<5;?$i++)//繪背景干擾線 {??? ????$color1?=?ImageColorAllocate($im,?mt_rand(0,255),?mt_rand(0,255),?mt_rand(0,255));?//干擾線顏色 ????ImageArc($im,?mt_rand(-5,$w),?mt_rand(-5,$h),?mt_rand(20,300),?mt_rand(20,200),?55,?44,?$color1);?//干擾線 }??? for($i=0;?$i<$how*40;?$i++)//繪背景干擾點(diǎn) {??? ????$color2?=?ImageColorAllocate($im,?mt_rand(0,255),?mt_rand(0,255),?mt_rand(0,255));?//干擾點(diǎn)顏色? ????ImageSetPixel($im,?mt_rand(0,$w),?mt_rand(0,$h),?$color2);?//干擾點(diǎn) } //把驗(yàn)證碼字符串寫入session session_start(); $_SESSION['randcode']?=?$randcode; /*繪圖結(jié)束*/ Imagegif($im); ImageDestroy($im); /*繪圖結(jié)束*/ ?> [/php]
發(fā)表評論