php验证码的制作

验证码的作用主要是屏蔽机器操作和不必要的请求,关于php验证码,

常见的有这几种数字字母混合,图片或者中文,后两种用的不多

php搭载的GD库可以帮助我们生成验证码底图,剩下的无外乎就是在底图上添加我们的随机元素,

再用session记录,就可以实现验证了。

记住需要用session的时候,一定要先写session_start()方法

接着指定header信息

header('content-type:image/png');

告诉阅览器传输的是png图片

接下来就是要用GD库中的方法了

//底图的制作
$image = imagecreatetruecolor(100,30);//底图大小
$bgcolor = imagecolorallocate($image,200,200,200);//设置填充颜色的对象 - 灰色
imagefill($image,0,0,$bgcolor);//设置填充位置  把之前的颜色传递进去


//添加字母数字4个混合

$captch_code = "";
for($i=0;$i<4;$i++) {
$fontsize = 12;
$fontcolor = imagecolorallocate($image,rand(1,120),rand(0,120),rand(0,120));
$a = rand(0,1);
$fontcontent = $a>0 ? chr(rand(97,122)):rand(0,9);//65到90是大写的
$x = ($i*100/4) + rand(5,10);
$y = rand(5,10);

imagestring($image,$fontsize,$x,$y,$fontcontent,$fontcolor);
$captch_code .=$fontcontent;

}
$_SESSION['authcode'] = $captch_code;


//增加点干扰
for($i=0;$i<200;$i++) {
$pointcolor = imagecolorallocate($image,rand(50,200),rand(50,200),rand(50,200));
imagesetpixel($image,rand(1,99),rand(1,99),$pointcolor);
}

//增加线干扰元素
for($i=0;$i<3;$i++) {
$linecolor = imagecolorallocate($image,rand(80,200),rand(80,200),rand(80,200));
imageline($image,rand(1,99),rand(1,29),rand(1,99),rand(1,29),$linecolor);
}

 //以png格式将图像输出到阅览器
imagepng($image);

//销毁
imagedestroy($image);


以上就是创建一个字母数字混合的验证码,验证的话可以直接用img标签引入就可以了

另外还有字体图片验证码,无非就是加入图片数据和字体数据,画到创建的画布上就OK了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值