欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

生成验证码 随机干扰php实现

程序员文章站 2024-01-17 17:53:46
...
  1. session_start ();
  2. header ( 'Content-type: image/png' );
  3. //创建图片
  4. $im = imagecreate($x=130,$y=45 );
  5. $bg = imagecolorallocate($im,rand(50,200),rand(0,155),rand(0,155)); //第一次对 imagecolorallocate() 的调用会给基于调色板的图像填充背景色
  6. $fontColor = imageColorAllocate ( $im, 255, 255, 255 ); //字体颜色
  7. $fontstyle = 'rock.ttf'; //字体样式,这个可以从c:\windows\Fonts\文件夹下找到,我把它放到和authcode.php文件同一个目录,这里可以替换其他的字体样式
  8. //产生随机字符
  9. for($i = 0; $i $randAsciiNumArray = array (rand(48,57),rand(65,90));
  10. $randAsciiNum = $randAsciiNumArray [rand ( 0, 1 )];
  11. $randStr = chr ( $randAsciiNum );
  12. imagettftext($im,30,rand(0,20)-rand(0,25),5+$i*30,rand(30,35),$fontColor,$fontstyle,$randStr);
  13. $authcode .= $randStr;
  14. }
  15. $_SESSION['authcode'] = $randFourStr;//用户和用户输入的验证码做比较
  16. //干扰线
  17. for ($i=0;$i $lineColor = imagecolorallocate($im,rand(0,255),rand(0,255),rand(0,255));
  18. imageline ($im,rand(0,$x),0,rand(0,$x),$y,$lineColor);
  19. }
  20. //干扰点
  21. for ($i=0;$i imagesetpixel($im,rand(0,$x),rand(0,$y),$fontColor);
  22. }
  23. imagepng($im);
  24. imagedestroy($im);
  25. ?>
复制代码

验证码, php