php 1——生成简单验证码
生成验证码看似是一个很复杂的东西,其实它很简单,只需要四个步骤
①生成随机数—>②创建图片—>③随机数写进图片—>④输出图片—>保存在session中
仅仅四步,就可以随机创建验证码了,是不是很简单
①我们先看第一步—>生成随机数:
因为一般的验证码都是字母和数字同时出现的,所以我们可以采用产生十六进制数字的方式,简单随机创建验证码,要产生一串(4个)数字或者字母,所以要用到for循环
for($i=0;i<4;i++){
$rand.=dechex(rand(1,15));
}
代码写完了,下面解释一下:
“rand.=”的意思是把四个字符连起来的意思,dechex是把数字传换成十六进制,rand(1,15)是产生一个1到15之间的数字
②第二步—>创建图片
$img=imagecreatetruecolor ( 100,40 ) // 100是宽 ,40是高
$bgc=imagecolorallocate ($img, 0, 0, 0 )//第一次用调色板是设置的背景颜色 第一个0是红色的值,第二个是绿色,第三个是蓝色,都为0就是黑色
③第三步—>随机数写进图片
$color=imagecolorallocate ($img, 255, 255, 255 )//第二次就是单纯的设置颜色,供以后的字体等上色使用 都为255就是白色 rgb颜色可以自己去调
imagestring ($img, 3, 10, 5, $rand, $color)//这个函数是在图片上绘制文字,第一个参数是你想要在上面加文字的图片,第二个参数是字体,系统默认1-6六种字体可供选择,第三个参数是距背景左边界的距离,第四个参数是距上边界的距离,第五个是要输出的字符串,最后一个为字体的颜色,就可以用我们之前定义过的$color
④第四步—>输出图片
header("Content-type:image/jpeg");
imagejpeg($img);
最后一步:保存在session中,以供验证
先启动session:
session_start();//这句代码写在for循环前面
然后将rand变量保存进session:$_SESSION[check]=$rand;//这句代码写在for循环的后面