php-生成验证码

2023-08-26 18:47:41 浏览数 (2)

代码语言:javascript复制
<?php
/**
 * Created by PhpStorm.
 * User: 
 * Date: 2016/4/20
 * Time: 20:07
 */
   session_start();
   //画一张背景图
   $image=imagecreatetruecolor(100,30);
   $bgcolor=imagecolorallocate($image,255,255,255);
   imagefill($image,0,0,$bgcolor);

   /*//生成四位随机数字
   for($i=0;$i<4;$i  ){
      $fonsize=6;
      $foncolor=imagecolorallocate($image,rand(0,120),rand(0,120),rand(0,120));
      $fontcontent=rand(0,9);

      //数字的显示位置
      $x=($i*100/4) rand(5,9);
      $y=rand(5,10);
      imagestring($image,$fonsize,$x,$y,$fontcontent,$foncolor);

   }*/
   $captch_code='';
   //生成数字字母混合验证码

   for($i=0;$i<4;$i  ){
      $fonsize=6;
      $fontcolor=imagecolorallocate($image,rand(0,120),rand(0,120),rand(0,120));
      $data="abcdefghjklmnpqrstuvwxy13456789";
      $fontcontent=substr($data,rand(0,strlen($data)),1);
      $captch_code.=$fontcontent;
      //验证码的位置
      $x=($i*100/4) rand(5,10);
      $y=rand(5,10);

      //
      imagestring($image,$fonsize,$x,$y,$fontcontent,$fontcolor);
   }
   $_SESSION['authcode']=$captch_code;
   //添加干扰元素:点
   for($i=0;$i<200;$i  ){
      $pointcolor=imagecolorallocate($image,rand(55,200),rand(55,200),rand(55,200));
      imagesetpixel($image,rand(1,99),rand(1,99),$pointcolor);
   }
   //添加干扰元素:线

   for($i=0;$i<3;$i  ){
      $linecolor=imagecolorallocate($image,rand(80,220),rand(80,220),rand(80,220));
      imageline($image,rand(1,99),rand(1,29),rand(1,99),rand(1,29),$linecolor);

   }
   header('content-type: image/png');
   imagepng($image);



   imagedestroy($image);

?>

0 人点赞