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

PHP验证码代码的方法

程序员文章站 2022-03-11 23:04:50
...
  小编就为大家分享一个漂亮的php验证码类。需要的朋友可以过来参考下!

  php验证码类代码

  width=$width;

  $this->height=$height;

  $this->counts=$counts;

  $this->distrubcode=$distrubcode;

  $this->fonturl=$fonturl;

  $this->session=$this->sessioncode();

  session_start();

  $_SESSION["code"]=$this->session;

  }

  function imageout(){

  $im=$this->createimagesource();

  $this->setbackgroundcolor($im);

  $this->set_code($im);

  $this->setdistrubecode($im);

  ImageGIF($im);

  ImageDestroy($im);

  }

  private function createimagesource(){

  return imagecreate($this->width,$this->height);

  }

  private function setbackgroundcolor($im){

  $bgcolor = ImageColorAllocate($im, rand(200,255),rand(200,255),rand(200,255));//±3?°??é?

  imagefill($im,0,0,$bgcolor);

  }

  private function setdistrubecode($im){

  $count_h=$this->height;

  $cou=floor($count_h*2);

  for($i=0;$i

  $x=rand(0,$this->width);

  $y=rand(0,$this->height);

  $jiaodu=rand(0,360);

  $fontsize=rand(8,15);

  $fonturl=$this->fonturl;

  $originalcode = $this->distrubcode;

  $countdistrub = strlen($originalcode);

  $dscode = $originalcode[rand(0,$countdistrub-1)];

  $color = ImageColorAllocate($im, rand(40,140),rand(40,140),rand(40,140));

  imagettftext($im,$fontsize,$jiaodu,$x,$y,$color,$fonturl,$dscode);

  }

  }

  private function set_code($im){

  $width=$this->width;

  $counts=$this->counts;

  $height=$this->height;

  $scode=$this->session;

  $y=floor($height/2)+floor($height/4);

  $fontsize=rand(30,35);

  $fonturl="C:\Windows\Fonts\AdobeGothicStd-Bold.otf";//$this->fonturl;

  $counts=$this->counts;

  for($i=0;$i

  $char=$scode[$i];

  $x=floor($width/$counts)*$i+8;

  $jiaodu=rand(-20,30);

  $color = ImageColorAllocate($im,rand(0,50),rand(50,100),rand(100,140));

  imagettftext($im,$fontsize,$jiaodu,$x,$y,$color,$fonturl,$char);

  }

  }

  private function sessioncode(){

  $originalcode = $this->distrubcode;

  $countdistrub = strlen($originalcode);

  $_dscode = "";

  $counts=$this->counts;

  for($j=0;$j

  $dscode = $originalcode[rand(0,$countdistrub-1)];

  $_dscode.=$dscode;

  }

  return $_dscode;

  }

  }

  PHP验证码代码实例示范 建一个输出文件代码:

  Header("Content-type: image/GIF");

  $imagecode=new Imagecode(150,2);

  $imagecode->imageout();

  PHP验证码类就这么简单,可以用了!

  源码。