龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > php编程 >

php 验证类

时间:2015-04-07 02:43来源:网络整理 作者:网络 点击:
分享到:
验证类 PHP验证类**[PHP]代码**[代码片段(105行)]**[PHP]代码**[代码片段(105行)]

PHP验证类

[PHP]代码

<?php
class checkcode
{
   //图像句柄
   private $img;
   //画布宽
   public $width=85;
   //画布搞
   public $height=25;
   //背景颜色
   public $bg_color = "#DCDCDC";
   //验证码
   public $code;
   //验证码库
   public $code_str = "sadhadh1ui2y9822ur2r9283r9rqdadqe12423reffqadfja09sdf0rpafashdfqwer98fqortFP89EDFIOQHFWEFTrgwfOGUsgdfKHAEFUHuqGR";
   //验证码长度
   public $code_len = 4;
   //验证码字体
   public $font;
   //字体大小
   public $font_size = 16;
   //字体颜色
   public $font_color = "#ffffff";

   /*
   * 构造函数
   */
   public function __construct()
   {
      $this->font = "font".DIRECTORY_SEPARATOR."arial.ttf";
   }
   /*
   *验证码生成函数
   */
   private function create_code()
   {
      $code=" ";
      for($i=0;$i<$this->code_len;$i++)
      {
         $code.=$this->code_str[mt_rand(0,strlen($this->code_str)-1)];
      }
       $this->code = $code;
   }
   /*
   *得到验证码
   */
   public function getcode()
   {
      return strtoupper($this->code);
   }
   /*
   * 创建图画句柄
   */
   public function getimg()
   {
      $w = $this->width;
      $h = $this->height;
      $img = imagecreatetruecolor($w,$h);
      $bg_color = imagecolorallocate($img,hexdec(substr($bg_color,1,2)),hexdec(substr($img,3,2)),hexdec(substr($img,5,2)));
      imagefill($img,0,0,$bg_color);
      $this->img = $img;
      $this->create_font();
      $this->create_pix();
      $this->show_code();
   }
   /*
   *创建字体
   */
   public function create_font()
   {
       $this->create_code();
        $color= $this->font_color;
        $font_color = imagecolorallocate($this->img, hexdec(substr($color, 1,2)), hexdec(substr($color, 3,2)), hexdec(substr($color, 5,2)));
        $x = $this->width/$this->code_len;
        for($i=0;$i<$this->code_len;$i++){
          imagettftext($this->img, $this->font_size, mt_rand(-30, 30), $x*$i+mt_rand(3,6), mt_rand($this->height/1.2,$this->height-5), $font_color, $this->font, $this->code[$i]);
        }
      $this->font_color = $font_color;
   }
   /*
   *写人干扰
   */
   private function create_pix()
   {
     $pix_color = $this->font_color;
     for($i=0;$i<100;$i++)
      {
        imagesetpixel($this->img,mt_rand(0,$this->width),mt_rand(0,$this->height),$pix_color);
     }
     for($j=0;$j<2;$j++)
     {
        imagesetthickness($this->img,mt_rand(2,4));
        imageline($this->img,mt_rand(0,$this->width),mt_rand(0,$this->height),mt_rand(0,$this->width),mt_rand(0,$this->height),$pix_color);
     }
   }
   /*
   *显示代码
   */
    private function show_code(){
        header("Content-type:image/png");
        imagepng($this->img);
        imagedestroy($this->img);
    }
}
?>

[PHP]代码

<?php
class checkcode
{
   //图像句柄
   private $img;
   //画布宽
   public $width=85;
   //画布搞
   public $height=25;
   //背景颜色
   public $bg_color = "#DCDCDC";
   //验证码
   public $code;
   //验证码库
   public $code_str = "sadhadh1ui2y9822ur2r9283r9rqdadqe12423reffqadfja09sdf0rpafashdfqwer98fqortFP89EDFIOQHFWEFTrgwfOGUsgdfKHAEFUHuqGR";
   //验证码长度
   public $code_len = 4;
   //验证码字体
   public $font;
   //字体大小
   public $font_size = 16;
   //字体颜色
   public $font_color = "#ffffff";

   /*
   * 构造函数
   */
   public function __construct()
   {
      $this->font = "font".DIRECTORY_SEPARATOR."arial.ttf";
   }
   /*
   *验证码生成函数
   */
   private function create_code()
   {
      $code=" ";
      for($i=0;$i<$this->code_len;$i++)
      {
         $code.=$this->code_str[mt_rand(0,strlen($this->code_str)-1)];
      }
       $this->code = $code;
   }
   /*
   *得到验证码
   */
   public function getcode()
   {
      return strtoupper($this->code);
   }
   /*
   * 创建图画句柄
   */
   public function getimg()
   {
      $w = $this->width;
      $h = $this->height;
      $img = imagecreatetruecolor($w,$h);
      $bg_color = imagecolorallocate($img,hexdec(substr($bg_color,1,2)),hexdec(substr($img,3,2)),hexdec(substr($img,5,2)));
      imagefill($img,0,0,$bg_color);
      $this->img = $img;
      $this->create_font();
      $this->create_pix();
      $this->show_code();
   }
   /*
   *创建字体
   */
   public function create_font()
   {
       $this->create_code();
        $color= $this->font_color;
        $font_color = imagecolorallocate($this->img, hexdec(substr($color, 1,2)), hexdec(substr($color, 3,2)), hexdec(substr($color, 5,2)));
        $x = $this->width/$this->code_len;
        for($i=0;$i<$this->code_len;$i++){
          imagettftext($this->img, $this->font_size, mt_rand(-30, 30), $x*$i+mt_rand(3,6), mt_rand($this->height/1.2,$this->height-5), $font_color, $this->font, $this->code[$i]);
        }
      $this->font_color = $font_color;
   }
   /*
   *写人干扰
   */
   private function create_pix()
   {
     $pix_color = $this->font_color;
     for($i=0;$i<100;$i++)
      {
        imagesetpixel($this->img,mt_rand(0,$this->width),mt_rand(0,$this->height),$pix_color);
     }
     for($j=0;$j<2;$j++)
     {
        imagesetthickness($this->img,mt_rand(2,4));
        imageline($this->img,mt_rand(0,$this->width),mt_rand(0,$this->height),mt_rand(0,$this->width),mt_rand(0,$this->height),$pix_color);
     }
   }
   /*
   *显示代码
   */
    private function show_code(){
        header("Content-type:image/png");
        imagepng($this->img);
        imagedestroy($this->img);
    }
}
?>
精彩图集

赞助商链接