天天看點

php 驗證碼控件

 注意:以下代碼需要打開php的GD庫,修改php.in檔案的配置,把已經注釋掉的行之前的分号取消即可:extension=php_gd2.dll。

<?

session_start();

//生成驗證碼圖檔

Header("Content-type: image/PNG");

$im = imagecreate(44,18);

$back = ImageColorAllocate($im, 245,245,245);

imagefill($im,0,0,$back); //背景

srand((double)microtime()*1000000);

//生成4位數字

for($i=0;$i<4;$i++){

$font = ImageColorAllocate($im, rand(100,255),rand(0,100),rand(100,255));

$authnum=rand(1,9);

$vcodes.=$authnum;

imagestring($im, 5, 2+$i*10, 1, $authnum, $font);

}

for($i=0;$i<100;$i++) //加入幹擾象素

$randcolor = ImageColorallocate($im,rand(0,255),rand(0,255),rand(0,255));

imagesetpixel($im, rand()%70 , rand()%30 , $randcolor);

ImagePNG($im);

ImageDestroy($im);

$_SESSION['VCODE'] = $vcodes;

?>

到具體調用的地方,用這樣的形式:<img src="/yz.php" align="absmiddle" />就可以了;驗證的時候驗證session:$_SESSION['VCODE']的值就可以了。還可以對以上代碼稍微改進,改成兩個數字相加求和的形式,效果可以參見《ASP生成Bmp圖檔驗證碼:數字相加求和》。