发表博客时看到了本网站的验证码功能,所以写了这篇文章。原理相同
为了防止暴力破解我们一般都会添加验证码功能,这里主要介绍php带运算的验证码是如何实现的。
1.首先要绘制验证码的背景图片 使用GD2来实现
$image = imagevreate(70,20);//设置画布大小
$background = ImageColorAllocate($im,245,245,245);//创建颜色,用于填充画布
imagefill($image,0,0$background);//填充画布
2.在画布上绘制数字
$color = ImageColorAllocate($image,rand(100,255),rand(0,100),rand(100,255));//随机创建一种颜色
$num = rand(1,9);//创建一个随机数
imagestring($image,5,2+0*10,1,$num,$color);//在画布上绘制数字
3.添加运算
以加法为例,绘制4个随机数字,第一个是被加数的十位,第二个是被加数的个位,第三个是加数的十位,第四个是加数的个位,在第二三个数字中间绘制运算符(+),在第四个数后面绘制等号。
算出结果$result=$a*10+$b+$c*10+$d
4.验证验证码
验证码在显示时我们可以将生成的结果存放在一个session的值里 $_SESSION['result']=$result。和用户输入的验证码做对比,验证是否输入正确