加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php验证码类

发布时间:2020-12-13 14:11:01 所属栏目:PHP教程 来源:网络整理
导读:?php /** * @file * @version? 1.0 * @author?? 网海浪子 * @date??2006-3-30 * @email?sxf02615@163.com * @brief??? 验证码文件类 * */ ? ?php class CCheckCodeFile { ?//验证码位数 ?private $mCheckCodeNum??= 4; ?//产生的验证码 ?private $mCheckCode

<?php
/**
* @file
* @version? 1.0
* @author?? 网海浪子
* @date??2006-3-30
* @email?sxf02615@163.com
* @brief??? 验证码文件类
*
*/
?>
<?php
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()),$this->mCheckCodeNum));
??return $this->mCheckCode;
?}

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

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

itlearner注:能产生随机的英文字母和数字,不错!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读