Heim  >  Artikel  >  Backend-Entwicklung  >  php5验证码类(简易实用型)

php5验证码类(简易实用型)

WBOY
WBOYOriginal
2016-07-25 08:59:56883Durchsuche
为大家介绍一个php验证码类,简易实用型的,有需要的朋友,可以参考下。

PHP验证码类的代码。

<?php
/**
* php5验证码类
* edit bbs.it-home.org
*/
class CCheckCodeFile
{
//验证码位数
private $mCheckCodeNum   = 4;

//产生的验证码
private $mCheckCode    = '';

//验证码的图片
private $mCheckImage   = '';

//干扰像素
private $mDisturbColor   = '';

//验证码的图片宽度
private $mCheckImageWidth = '80';

//验证码的图片宽度
private $mCheckImageHeight   = '20';

/**
*
* @brief   输出头
*
*/
private function OutFileHeader()
{
   header ("Content-type: image/png");
}

/**
*
* @brief   产生验证码
*
*/
private function CreateCheckCode()
{
   $this->mCheckCode = strtoupper(substr(md5(rand()),0,$this->mCheckCodeNum));
   return $this->mCheckCode;
}

/**
*
* @brief   产生验证码图片
*
*/
private function CreateImage()
{
   $this->mCheckImage = @imagecreate ($this->mCheckImageWidth,$this->mCheckImageHeight);
   imagecolorallocate ($this->mCheckImage, 200, 200, 200);
   return $this->mCheckImage;
}

/**
*
* @brief   设置图片的干扰像素
*
*/
private function SetDisturbColor()
{
   for ($i=0;$i<=128;$i++)
   {
    $this->mDisturbColor = imagecolorallocate ($this->mCheckImage, rand(0,255), rand(0,255), rand(0,255));
    imagesetpixel($this->mCheckImage,rand(2,128),rand(2,38),$this->mDisturbColor);
   }
}

/**
*
* @brief   设置验证码图片的大小
*
* @param   $width   宽
*
* @param   $height 高 
*
*/
public function SetCheckImageWH($width,$height)
{
   if($width==''||$height=='')return false;
   $this->mCheckImageWidth   = $width;
   $this->mCheckImageHeight = $height;
   return true;
}

/**
*
* @brief   在验证码图片上逐个画上验证码
*
*/
private function WriteCheckCodeToImage()
{
   for ($i=0;$i<=$this->mCheckCodeNum;$i++)
   {
    $bg_color = imagecolorallocate ($this->mCheckImage, rand(0,255), rand(0,128), rand(0,255));
    $x = floor($this->mCheckImageWidth/$this->mCheckCodeNum)*$i;
    $y = rand(0,$this->mCheckImageHeight-15);
    imagechar ($this->mCheckImage, 5, $x, $y, $this->mCheckCode[$i], $bg_color);
   }
}

/**
*
* @brief   输出验证码图片
*
*/
public function OutCheckImage()
{
   $this ->OutFileHeader();
   $this ->CreateCheckCode();
   $this ->CreateImage();
   $this ->SetDisturbColor();
   $this ->WriteCheckCodeToImage();
   imagepng($this->mCheckImage);
   imagedestroy($this->mCheckImage);
}
}
$c_check_code_image = new CCheckCodeFile();
//$c_check_code_image ->SetCheckImageWH(100,50);//设置显示验证码图片的尺寸
$c_check_code_image ->OutCheckImage();
?>


Stellungnahme:
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