PHP的中问验证码

复制代码 代码如下:

  <?php

  Class code

  {

  var $width =160; //图片的宽

  var $hight =40; //图片的高

  var $image;

  var $red =223; //图片的RGB颜色

  var $green =225; //红

  var $blue =227 ;//绿

  var $pix =227 ;//蓝

  var $pixcolor; //杂色颜色;

  var $pixred = 242; //红

  var $pixgreen = 168;//绿

  var $pixblue = 162; //蓝

  var $txt=null;//验证码文字

  var $txtcode=null;

  var $txtsub=null;

  var $pixnum = 300; //杂点数量

  var $i=0;

  var $widthpx=0;

  var $highty=0;

  var $txtreg=50;

  var $txtgreen=30;

  function createimage()  //创建一张图并填色

  {

  $this->image = imagecreate($this->width,$this->hight);

  $this->color = imagecolorallocate($this->image,$this->red,$this->green,$this->blue);

  return imagefill($this->image,0,0,$this->color);

  }

  function createpix() //干扰因素

  {

  for($this->i=1;$this->i<$this->pixnum;$this->i++)

  {

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

  $this->highty = rand(0,$this->hight);

  $this->pixcolor = imagecolorallocate($this->image,$this->pixred,$this->pixgreen,$this->pixblue);

  imagesetpixel($this->image,$this->widthpx,$this->highty,$this->pixcolor);

  }

  }

  function gettxt() //创建验证码文字

  {

  $this->txt = array("我","爱","你","叶","就","慧","明","发","真","的","很","想","不","知","到","为","什","么","就","是","忘","不","了","你","也","许","上","辈","欠","钱");

  for($this->i=0;$this->i<6;$this->i++)

  {

  $this->sub = $this->txt[rand(0,29)];

  $this->txtcode.= $this->sub;

  }

  $this->txtcode = iconv("GB2312","UTF-8",$this->txtcode);

  $_SESSION["code"] = $this->txtcode; //产生的验证ID

  }

  function createstring() //创建验证码图片

  {

  imagettftext($this->image,20,5,0,40,$this->pixcolor,"C:\WINDOWS\Fonts\simsun.ttc ",$this->txtcode);

  header("content-type:image/png");

  return imagepng($this->image);

  imagedestroy($this->image);

  }

  function getcodeimage()//获得验证码图片

  {

  $this->createimage();

  $this->gettxt();

  $this->createpix();

  $this->createstring();

  }

  }

  ?>

  <?php

  session_start();

  $text = new code;

  $text->createimage();

  $text->gettxt();

  $text->createpix();

  $text->createstring();

  ?>