Heim > php教程 > PHP源码 > php验证类

php验证类

PHP中文网
Freigeben: 2016-05-25 17:12:04
Original
1072 Leute haben es durchsucht

[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);
	}
}
?>
Nach dem Login kopieren
Nach dem Login kopieren

[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);
	}
}
?>
Nach dem Login kopieren
Nach dem Login kopieren

                   

                   

Verwandte Etiketten:
php
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage