PHP生成图像验证码的方法小结(2种方法)__第1页
PHP生成图像验证码的方法小结(2种方法)__第2页
PHP生成图像验证码的方法小结(2种方法)__第3页
PHP生成图像验证码的方法小结(2种方法)__第4页
PHP生成图像验证码的方法小结(2种方法)__第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、PHP生成图像验证码的方法小结(2种方法)_ 这篇文章主要介绍了PHP生成图像验证码的方法,结合实例形式分析了加法运算验证码与字符验证码2种方法供大家参考借鉴,需要的伴侣可以参考下 1、生成加法运算验证码图片 session_start (); /*定义头文件为图片*/ header(Content-type: image/png); /*生成验证码*/ /*创建图片设置字体颜色*/ $im = imagecreate($w, $h); $red = imagecolorallocate($im, 255, 255, 255); $white = imagecolorallocate($im,

2、 255, 255, 255); /*随机生成两个数字*/ $num1 = rand(1, 20); $num2 = rand(1, 20); $_SESSION administratorConfirmCode = $num1+$num2; /*设置图片背景颜色*/ $gray = imagecolorallocate($im, 118, 151, 199); $black = imagecolorallocate($im, mt_rand(0, 100), mt_rand(0, 100), mt_rand(0, 100); /*创建图片背景*/ imagefilledrectangle($

3、im, 0, 0, 100, 24, $black); /*在画布上随机生成大量点*/ for ($i = 0; $i 80; $i+) imagesetpixel($im, rand(0, $w), rand(0, $h), $gray); /*将计算验证码写入到图片中*/ imagestring($im, 5, 5, 4, $num1, $red); imagestring($im, 5, 30, 3, +, $red); imagestring($im, 5, 45, 4, $num2, $red); imagestring($im, 5, 70, 3, =, $red); images

4、tring($im, 5, 80, 2, ?, $white); /*输出图片*/ imagepng($im); imagedestroy($im); 2、生成字符验证码图片【值得留意的是在字体哪里,需要引入实际的字体路径,否则,可能消失图像显示不了验证码】 session_start (); /*设置文件头为图片输出*/ Header(Content-type: image/JPEG); /*调用生成验证码函数*/ $str=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz01234565789; $result=; for($i=0;

5、$i$length;$i+) $num$i=rand(0,61); $result.=$str$num$i; $text = $result; $_SESSION administratorConfirmCode = $text; /*设置图片的宽度和高度*/ $im_x = $w; $im_y = $y; /*创建图片*/ $im = imagecreatetruecolor($im_x,$im_y); $text_c = ImageColorAllocate($im, mt_rand(0,100),mt_rand(0,100),mt_rand(0,100); $tmpC0=mt_rand(

6、100,255); $tmpC1=mt_rand(100,255); $tmpC2=mt_rand(100,255); $buttum_c = ImageColorAllocate($im,$tmpC0,$tmpC1,$tmpC2); imagefill($im, 16, 13, $buttum_c); /*字体文件*/ $font = _WEB_DIR_./font/comic.ttf; for ($i=0;$istrlen($text);$i+) $tmp =substr($text,$i,1); $array = array(-1,1); $p = array_rand($array);

7、 $an = $array$p*mt_rand(1,10);/角度 $size = 28; imagettftext($im, $size, $an, 15+$i*$size, 35, $text_c, $font, $tmp); /*将字符写入文件中*/ $distortion_im = imagecreatetruecolor ($im_x, $im_y); imagefill($distortion_im, 16, 13, $buttum_c); for ( $i=0; $i$im_x; $i+) for ( $j=0; $j$im_y; $j+) $rgb = imagecolorat

8、($im, $i , $j); if( (int)($i+20+sin($j/$im_y*2*M_PI)*10) = imagesx($distortion_im) (int)($i+20+sin($j/$im_y*2*M_PI)*10) =0 ) imagesetpixel ($distortion_im, (int)($i+10+sin($j/$im_y*2*M_PI-M_PI*0.1)*4) , $j , $rgb); /*干扰元素点的数量*/ $count = 160; /*创建干扰元素点*/ for($i=0; $i$count; $i+) $randcolor = ImageCol

9、orallocate($distortion_im,mt_rand(0,255),mt_rand(0,255),mt_rand(0,255); imagesetpixel($distortion_im, mt_rand()%$im_x , mt_rand()%$im_y , $randcolor); /*创建干扰线条*/ $rand = mt_rand(5,30); $rand1 = mt_rand(15,25); $rand2 = mt_rand(5,10); for ($yy=$rand; $yy=+$rand+2; $yy+) for ($px=-80;$px=80;$px=$px+0.1) $x=$px/$rand1; if ($x!=0) $y=sin($x); $py=$y*$rand2; imagesetpixel($distortion_im, $px+80,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论