`

PHP验证码

    博客分类:
  • PHP
阅读更多
php生成数字验证码图片

TAGS:PHP 数字验证码 图片

       在做信息提交时,为了防止被机器人自动添加数据,常采用的是图片格式的数字验证码来进行验证。在PHP编程中,图片格式的数字验证码,是怎么实现的呢?是不是很复杂呢?茶农在这里贴上一段带注释的代码,相信大家一看就明白啦!在些基础上,实现使用汉字来作为验证码,也不是一件困难的事情。(省略如何进行验证部分的代码)

<?php
/*
* Filename: authimg.php
* 生成彩色验证码图片
*/

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

$authnum = rand(1000,9999);//产生一个长度为四位的数字作为验证码

$x_size = 60;//图像的宽度
$y_size = 20;//图像的高度

$im = imagecreate($x_size,$y_size); //创建一个大小为x_size和y_size的空白图像

$black = ImageColorAllocate($im, 0,0,0); //创建调色板,定义颜色
$gray = ImageColorAllocate($im, 200,200,200); //创建调色板,定义颜色

imagefill($im,60,20,$gray); //填充背景色,背景颜色为定义的gray

imagestring($im, 5, 10, 3, $authnum, $black); //将验证码绘入图像,字体颜色为定义的black

//在图片中加入100个干扰象素,防止OCR

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); //在图片中用randcolor定义的颜色画点
}

ImagePNG($im); //将GD 图像流im以 PNG 格式输出到标准输出
ImageDestroy($im); //释放与 im 关联的内存
?>

注意

1,rand()函数的用法

int rand ( [int min, int max] ) 随机产生一个大小在min和max之间的整数

自 PHP 4.2.0 起,rand()不再需要用 srand()mt_srand() 函数给随机数发生器播种,现已自动完成。

所以啦,在这里就直接使用rand(1000,9999)来随机产生一个长度为四位的整数。

2,运行环境:

PHP4.2.0以上版本,GD库要允许运行

 

 

来自:http://hi.baidu.com/8286809/blog/item/15f9510e61f5fac87bcbe180.html

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics