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循环的后面

posted @ 2012-07-25 13:15  5AnonymousAtBJTU  阅读(794)  评论(0编辑  收藏  举报