首页 > php图像处理 > php中文与英文验证码程序代码

php中文与英文验证码程序代码

英文验证码相对简单,不要作hex处理,直接用色彩值就OK了,yzm.php实例代码如下:

session_start(); 
function rand_create()  
{  
    //通知浏览器将要输出PNG图片  
    Header("Content-type: image/PNG");  
    //准备好随机数发生器种子   
    srand((double)microtime()*1000000);  
    //准备图片的相关参数    
    $im = imagecreate(62,22);  
    $black = ImageColorAllocate($im, 0,0,0);  //RGB黑色标识符  
    $white = ImageColorAllocate($im, 255,255,255); //RGB白色标识符  
    $gray = ImageColorAllocate($im, 200,200,200); //RGB灰色标识符  
    //开始作图      
    imagefill($im,0,0,$gray);  
    while(($randval=rand()%100000)<10000);{  
        $_SESSION["Auth_code"] = $randval;  
        //将四位整数验证码绘入图片   
        imagestring($im, 5, 10, 3, $randval, $black);  
    }  
    //加入干扰象素     
    for($i=0;$i<200;$i++){  
        $randcolor = ImageColorallocate($im,rand(0,255),rand(0,255),rand(0,255)); //开源代码phprm.com 
        imagesetpixel($im, rand()%70 , rand()%30 , $randcolor);  
    }  
    //输出验证图片  
    ImagePNG($im);  
    //销毁图像标识符  
    ImageDestroy($im);  
}  
rand_create(); 
调用方法<img src=yzm.php />
中文验证码程序如下:
Header("Content-type: image/PNG"); 
$str = "这里设置一中文如果中国WEB第一站www.phprm.com"; 
$imagesW = 140; 
$imagesH = 40; 
//  
$Auimg = imagecreate($imagesW,$imagesH); 
$bgc = ImageColorAllocate($Auimg,255,255,255); 
$font = "heiti.ttf";//这里设置字体,你可以随便下载一款字体哦。 
$white=imagecolorallocate($Auimg,234,185,95); 
imagearc($Auimg, 150, 8, 20, 20, 75, 170, $white); 
imagearc($Auimg, 180, 7,50, 30, 75, 175, $white); 
imageline($Auimg,20,20,180,30,$white); 
imageline($Auimg,20,18,170,50,$white); 
imageline($Auimg,25,50,80,50,$white); 
$noise_num = 800; 
$line_num = 20; 
imagecolorallocate($Auimg,0xff,0xff,0xff); 
$rectangle_color=imagecolorallocate($Auimg,0xAA,0xAA,0xAA); 
$noise_color=imagecolorallocate($Auimg,0x00,0x00,0x00); 
$font_color=imagecolorallocate($Auimg,0x00,0x00,0x00); 
$line_color=imagecolorallocate($Auimg,0x00,0x00,0x00); 
for($i=0;$i<$noise_num;$i++){ 
 imagesetpixel($Auimg,mt_rand(0,$imagesW),mt_rand(0,$imagesH),$noise_color); 
} 
for($i=0;$i<$line_num;$i++){ 
 imageline($Auimg,mt_rand(0,$imagesW),mt_rand(0,$imagesH),mt_rand(0,$imagesW),mt_rand(0,$imagesH),$line_color); 
} 
$mtRnd=rand(0,strlen($str)-4); 
if($mtRnd%2)$mtRnd+=1; 
$str = substr($str,$mtRnd,8); 
$str = iconv("GB2312","UTF-8",$str); 
ImageTTFText($Auimg, 20, 0, 16, 30, $font_color, $font, $str); 
ImagePNG($Auimg); 
ImageDestroy($Auimg);

共同点就是验证码都借助于其它容器来保存如session,cookie等,否则就没有验证的意义了.                                        


本文地址:http://www.phprm.com/tuxiang/fs5160.html

转载随意,但请附上文章地址:-)

标签:php中文验证码 php英文验证码

相关文章

发表留言