本文举例说明了五种验证码,并介绍了生成验证码的功能。PHP生成验证码的原理:通过GD库生成带有验证码的图片,将验证码保存在Session中。
session _ start();getCode(4,60,20);函数getCode($num,$w,$ h){ $ code=' ';for($ I=0;$ i $ num$i ) { $code。=rand(0,9);}//4位验证码也可以由兰德(1000,9999)直接生成。//将生成的验证码写入session,使用$ _ session[' helloweb a _ num ']=$ code进行验证;//创建图片并定义颜色值标题(' content-type : image/png ');$im=imagecreate($w,$ h);$black=imagecolorallocate($im,0,0,0);$gray=imagecolorallocate($im,200,200,200);$ BG color=imagecolor allocate($ im,255,255,255);//填充背景imagefill($im,0,0,$ gray);//绘制边框图像矩形($ im,0,0,$ w-1,$ h-1,$ black);//随机画两条虚线干扰$ style=array ($ black,$ black,$ black,$ gray,$ gray,$ gray,$ gray);imagesetstyle($im,$ style);$y1=兰特(0,$ h);$y2=兰特(0,$ h);$y3=兰特(0,$ h);$y4=兰特(0,$ h);imageline($im,0,$y1,$w,$y3,IMG _ COLOR _ style);imageline($im,0,$y2,$w,$y4,IMG _ COLOR _ style);//画布上随机产生大量黑点进行干扰;for($ I=0;$ i 80$i ) { imagesetpixel($im,rand(0,$w),rand(0,$h),$ black);}//在画布上随机显示数字,按照一定的波动范围随机生成字符的水平间距和位置,$strx=rand(3,8);for($ I=0;$ i $ num$i ) { $strpos=rand(1,6);imagestring($im,5,$strx,$strpos,substr($code,$i,1),$ black);$strx=rand(8,12);} image png($ im);//输出图像image destroy($ im);//释放图片占据的记忆}以上就是本文的全部内容,希望大家能够喜欢。