Heim  >  Artikel  >  Backend-Entwicklung  >  php容易验证码

php容易验证码

WBOY
WBOYOriginal
2016-06-13 13:15:20923Durchsuche

php简单验证码

<!--
*@copyright(c)2011
*@author:Ernest
*@time:2011
*@version:new
-->

<?php class VerifyImg {
	public $fontSize = 15; //定义字体大小
	public $length = 4; //定义字符串长度                        
	public $width = 70; //定义图片宽度
	public $height = 30; //定义图片高度
	public $im = null; //生成一张指定宽高的图片
	public $font = 'C:/Windows/Fonts/Arial.TTF';
	public $strNum = "";
	public function Build() {
		$strings = Array ('1', '2','3', '4', '5', '6', '7', 'a', 'b', 'c', 'd', 'e', 'f', 'h', 'i', 'j', 'k', 'm', 'n', 'p', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y' );
//		$strNum = "";
		$count = count ( $strings );
		for($i = 1; $i <= $this->length; $i ++) { //循环随机取字符生成字符串
			$strNum .= $strings [rand ( 0, $count - 1 )];
		}
		session_start ();
		$_SESSION ["verifycode"] = $strNum;
		$this->im = imagecreate ( $this->width, $this->height );
		$backgroundcolor = imagecolorallocate ( $this->im, 255, 255, 255 ); //生成背景色
		$frameColor = imageColorAllocate ( $this->im, 0, 255, 0 );
		for($i = 0; $i length; $i ++) {
			$charY = ($this->height + 9) / 2 + rand ( - 1, 1 ); //定义字符Y坐标
			$charX = $i * 15 + 8; //定义字符X坐标
			//            $text_color = imagecolorallocate($this->im, 255, 0, 0);                                                //生成字符颜色
			$text_color = imagecolorallocate ( $this->im, mt_rand ( 50, 255 ), mt_rand ( 50, 128 ), mt_rand ( 50, 200 ) );
			$angle = rand ( - 20, 20 ); //生成字符角度
			//写入字符
			imagettftext ( $this->im, $this->fontSize, $angle, $charX, $charY, $text_color, $this->font, $strNum [$i] );
		}
		for($i = 0; $i im, mt_rand ( 0, 255 ), mt_rand ( 0, 255 ), mt_rand ( 0, 255 ) );
			$linex = mt_rand ( 1, $this->width - 1 );
			$liney = mt_rand ( 1, $this->height - 1 );
			imageline ( $this->im, $linex, $liney, $linex + mt_rand ( 0, 4 ) - 2, $liney + mt_rand ( 0, 4 ) - 2, $linecolor );
		}
		for($i = 0; $i im, mt_rand ( 0, 255 ), mt_rand ( 0, 255 ), mt_rand ( 0, 255 ) );
			imagesetpixel ( $this->im, mt_rand ( 1, $this->width - 1 ), mt_rand ( 1, $this->height - 1 ), $pointcolor );
		}
		imagerectangle ( $this->im, 0, 0, $this->width - 1, $this->height - 1, $frameColor ); //画边框
		ob_clean ();
		header ( 'Content-type:image/png' );
		imagepng ( $this->im );
		imagedestroy ( $this->im );
	}
}
$img = new VerifyImg ();
$img->Build ();
?>
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