`
长虫的梅子
  • 浏览: 42177 次
  • 性别: Icon_minigender_2
  • 来自: 上海
社区版块
存档分类
最新评论

验证码生成类

    博客分类:
  • PHP
PHP 
阅读更多
参考了一些验证码生成方法,下面按个人的想法做了些修改,方便以后使用。
效果图:



<?php
class authCode
{
    /**  
     * 生成验证码图片  
      *   
     * @param  int $i_width  宽度,默认为100  
     * @param  int $i_height 高度,默认为25  
     * @param  int $i_length 长度,默认为4  
     * @param  int $i_flag   显示类型 1 : 字符和数字(默认)	
                                   * 2 : 纯数字
                                       * 3 : 纯字符
      * @return resource
     */ 
      public static function display($i_width=100, $i_height=25, $i_length=4, $i_flag=1)
	 {
		// 可能显示的字符
		$string[1] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";  
		$string[2] = "012345678901234567890123456789012345"; 
		$string[3] = "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJ";
		$str = Array(); 
		for($i = 0;$i < $i_length;$i++){
		   $str[$i]   = $string[$i_flag][rand(0,35)];
		   $authcode .=  $str[$i];
		}
		// 将验证码存入session
		if ( !$_SESSION ) @session_start(); 
		$_SESSION["stat_authcode"] = $authcode ;
		
		// 生成图片句柄
		$im    = imagecreatetruecolor($i_width,$i_height);
		$white = imagecolorallocate($im,255,255,255); //第一次调用设置背景色
		$black = imagecolorallocate($im,0,0,0);       //边框颜色
		imagefilledrectangle($im,0,0,$i_width,$i_height,$white);   //画一矩形填充
		imagerectangle($im,0,0,$i_width-1,$i_height-1,$black);     //画一矩形框
		
		// 生成雪花背景
		for($i = 1;$i < 200;$i++){
		   $x     = mt_rand(1,$i_width-9);
		   $y     = mt_rand(1,$i_height-9);
		   $color = imagecolorallocate($im,mt_rand(200,255),mt_rand(200,255),mt_rand(200,255));
		   imagechar($im,1,$x,$y,"*",$color);
		}
		// 将验证码写入图案
		for($i = 0;$i < count($str);$i++){
		   $x     = 13 + $i * ($i_width - 15)/$i_length;
		   $y     = mt_rand(3, $i_height / 3);
		   $color = imagecolorallocate($im,mt_rand(0,225),mt_rand(0,150),mt_rand(0,225));
		   imagechar($im,5,$x,$y, $str[$i],$color);
		}
		// 输出图片
		header("Content-type:image/jpeg"); 
		imagejpeg($im);
		imagedestroy($im);
	}
}
// 调用类的静态方法
authCode::display(100, 30, 6, 3);




  • 大小: 4.8 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics