我的php验证码类

来源:互联网 发布:matlab for mac中文版 编辑:程序博客网 时间:2024/05/18 00:13

<?php

/*

 * Created on 2010-3-11

 * author:zhangfei

 *我的验证码类

 */

 session_start();

 

 class Check_Class{

 

 public $h_img ;

public $c_back ;

public $c_front ;

 

//构造函数

function Check_Class(){

$h_img  =  imagecreate(100,30);

$c_back  =  imagecolorallocate($h_img,0,0,0);

$c_front  =  imagecolorallocate($h_img,255,255,255);

$_SESSION[randstr]=$randm_string = $this->random(5);//用session保存起来用以后面判断

 

$this->getLine($h_img);

$this->getPoint($h_img);

$this->paintString($h_img,$randm_string,$c_front);

 

//显示图片

header("Content-type:  image/jpeg");

imagejpeg($h_img);

imagedestroy($h_img);

}

 

 //产生随机字符串,包括数字和大小写字母

 function random($length)

{

   $hash = "";

   $chars = "CEFGHIJKLMNOPQRSTUVWXYZ0123456789cefghijklmnopqrstuvwxyz";

   $max = strlen($chars) - 1;

   mt_srand((double)microtime() * 1000000);

   for($i = 0; $i < $length; $i++)

   {

       $hash .= $chars[mt_rand(0, $max)];

   }

   return $hash;

}

 

//画干扰线的函数

function getLine($h){

for($j=0;$j<5;$j++){

//定义线条

$c_line = imagecolorallocate($h,rand(0,255),rand(0,255),rand(0,255));

//在图片上划线

imageline($h,rand(0,100),rand(0,30),rand(0,100),rand(0,30),$c_line);

}

}

 

//画噪点

function getPoint($h){

for($ii=0;$ii<400;$ii++){

$c_point = imagecolorallocate($h,rand(0,255),rand(0,255),rand(0,255));//定义噪点颜色

imagesetpixel($h,rand()%100,rand()%30,$c_point);

}

}

 

//画字符串

function paintString($h,$rd_str,$c_f){

imagestring($h,rand(4,6),rand(1,50),rand(1,15),$rd_str,$c_f);

}

 }

 

 $chek = new Check_Class();

?>

原创粉丝点击