亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > PHP > 正文

PHP一個簡單的驗證碼類

2020-03-22 20:27:17
字體:
供稿:網(wǎng)友
  • 初學(xué)Php,因為很多地方都涉及到驗證碼的功能,網(wǎng)上雖然有很多驗證碼的例子,但是看了之后都不是很滿意。于是,自己隨便看了一下書,寫了一個簡單地Php驗證碼類,可以提供簡單的生成一個驗證碼類。當然,這個類也是剛剛寫好,還有很多可以改進的地方。

    下面是代碼。

    <?php/*	2014/3/28	@程序與算法*/html' target='_blank'>class checkCode{	private $m_fontFile = "";  //儲存引入的字體文件路徑	private $m_fontSize = 16;  // 字體大小	private $m_str = "";  //儲存生成驗證碼的字符串	private $m_width = 80; //驗證碼圖片的寬度	private $m_heigh =  30; //驗證碼圖片的高度	private $m_bg = array("0xff", "0xff", "0xff");  //默認的背景顏色	private $m_tg = array("0x00", "0x00", "0x00");   //默認的字體顏色	private $m_ig;  //圖片變量	private $m_isbg = "";	private $m_istg = "";	private $m_codearray = array();  //動態(tài)生成驗證碼的字符數(shù)組,這里是0-9,a-z,A-Z	private $m_codeNum = 4; //驗證碼的長度		//構(gòu)造函數(shù),可以傳入寬度和高度,也可以使用默認的值	public function __construct($m_w = "", $m_h = "") 	{		$this->createCodeArray();  //用于生成隨機字符串		if ($m_w == "" || $m_h == "")		{			$this->m_ig = imagecreate($this->m_width, $this->m_heigh);		}		else		{			$this->m_ig = imagecreate($m_w, $m_h);			$this->m_width = $m_w;			$this->m_heigh = $m_h;		}		$this->setBgColor($this->m_bg[0], $this->m_bg[1], $this->m_bg[2]);	}	public function __destruct()	{		imagedestroy($this->m_ig);	}		public function setBgColor($m_r, $m_g, $m_b)  //設(shè)置驗證碼的背景顏色	{		$this->m_ig = imagecreate($this->m_width, $this->m_heigh);		$this->m_isbg = imagecolorallocate($this->m_ig, $m_r, $m_g, $m_b);		return $this->m_isbg;	}	public function setTxColor($m_r, $m_g, $m_b)  //設(shè)置字體顏色	{		$this->m_istg = imagecolorallocate($this->m_ig, $m_r, $m_g, $m_b);		return $this->m_istg;	}	public function setCodeCount($m_num) //設(shè)置驗證碼的長度	{		$this->m_codeNum = $m_num;	}	// 設(shè)置驗證碼的字符串,這個字符串可以是用戶自己設(shè)置的,也可以是由系統(tǒng)自動生成隨機的字符串	public function setCodeStr($str)  	{		$this->m_str = $str;	}	public function setCodeFontSize($size) //設(shè)置驗證碼字體的大小	{		$this->m_fontSize = $size;	}	public function setCodeFontFile($file) //設(shè)置字體類型,如果不調(diào)用這個函數(shù),就使用默認的字體	{		if (file_exists($file))		{			$this->m_fontFile = $file;		}	}	public function createCodeArray()  //生成隨機字符串的數(shù)組	{		$m_aa = ord('A');		$m_AB = ord('a');		for ($m_i = 0; $m_i < 36; ++ $m_i)		{			if ($m_i >= 0 && $m_i < 10)			{				array_push($this->m_codearray, $m_i);			}			else			{				$m_temp = chr($m_aa + $m_i - 10);				array_push($this->m_codearray, $m_temp);				$m_temp = chr($m_AB + $m_i - 10);				array_push($this->m_codearray, $m_temp);			}		}	}	public function createMass()  //生成雜點	{		$m_line = imagecolorallocate($this->m_ig, 0xdd, 0xdd, 0xdd);		for ($m_i = 0; $m_i < ($this->m_width + $this->m_heigh) / 50; ++ $m_i)		{			$m_fx = rand(0, $this->m_width);			$m_fy = rand(0, $this->m_heigh);			$m_sx = rand(0, $this->m_width);			$m_sy = rand(0, $this->m_heigh);			imageline($this->m_ig, $m_fx, $m_fy, $m_sx, $m_sy, $m_line);		}		$m_point = imagecolorallocate($this->m_ig, 0x00, 0x00, 0x00);		for ($m_i = 0; $m_i < $this->m_width * $this->m_heigh / 50; ++ $m_i)		{			$m_fx = rand(0, $this->m_width);			$m_fy = rand(0, $this->m_heigh);			imagesetpixel($this->m_ig, $m_fx, $m_fy, $m_point);		}	}	private function deutCode()  //默認字體生成的驗證碼圖片	{		@$m_arrstr = str_split($this->m_str); 		//$this->createMass();		if ($this->m_str == "") 		{					for ($m_i = 0; $m_i < $this->m_codeNum; ++ $m_i)			{				$m_index = rand(0, count($this->m_codearray) - 1);				$m_tempx = ($this->m_width / $this->m_codeNum) * ($this->m_codeNum - 1) / $this->m_codeNum;				$m_w = $m_tempx * ($m_i + 1);				$m_dh = $this->m_heigh / 4;				$m_h = rand($m_dh * 0.6, $m_dh * 1.5);				imagestring($this->m_ig, $this->m_fontSize, $m_w, $m_h, $this->m_codearray[$m_index], $this->m_istg);			}		}		else		{			$m_len = count($m_arrstr);			for ($m_i = 0; $m_i < $m_len; ++ $m_i)			{				$m_tempx = ($this->m_width / $m_len) * ($m_len - 1) / $m_len;				$m_w = $m_tempx * ($m_i + 1);				$m_dh = $this->m_heigh / 4;				$m_h = rand($m_dh * 0.6, $m_dh * 1.5);				imagestring($this->m_ig, $this->m_fontSize, $m_w, $m_h, $m_arrstr[$m_i], $this->m_istg);			}		}		imagepng($this->m_ig);	}	private function chgeCode()  //新字體生成的驗證碼圖片	{		@$m_arrstr = str_split($this->m_str);		if ($this->m_str == "")		{			for ($m_i = 0; $m_i < $this->m_codeNum; ++ $m_i)			{				$m_index = rand(0, count($this->m_codearray) - 1);				$m_tempx = ($this->m_width / $this->m_codeNum) * ($this->m_codeNum - 1) / $this->m_codeNum;				$m_w = $m_tempx * ($m_i + 1);				$m_h = $this->m_heigh / 1.2;				$m_angel = rand(0, 60);				imagefttext($this->m_ig, $this->m_fontSize, $m_angel, $m_w, $m_h, $this->m_istg, $this->m_fontFile, $this->m_codearray[$m_index]);			}		}		else		{			$m_len = count($m_arrstr);			for ($m_i = 0; $m_i < $m_len; ++ $m_i)			{				$m_tempx = ($this->m_width / $m_len) * ($m_len - 1) / $m_len;				$m_w = $m_tempx * ($m_i + 1);				$m_h = $this->m_heigh / 1.2;				$m_angel = rand(0, 45);				imagefttext($this->m_ig, $this->m_fontSize, $m_angel, $m_w, $m_h, $this->m_istg, $this->m_fontFile, $m_arrstr[$m_i]);			}		}	}	public function getCode()  //獲取驗證碼的函數(shù),這個函數(shù)就是相當于生成驗證碼	{		if ($this->m_istg == "")		{			$this->setTxColor($this->m_tg[0], $this->m_tg[1], $this->m_tg[2]);		}		$this->createMass();   //這個函數(shù)下面會有說明是一個生成隨機雜點的函數(shù)		if ($this->m_fontFile == "")		{			$this->deutCode();		}		else		{			$this->chgeCode();		}		imagepng($this->m_ig);	}}?>

    該類的使用方法一,這是最簡單的形式。

    1. 首先引入該類

    2. 初始化,不想類傳遞任何參數(shù),全部使用默認、

    3. 生成驗證碼

    具體的代碼如下

    <?php include "checkCode.php";?><?php	header("Content-Type:image/png");	$m_code = new checkCode();	$m_code->getCode();?>
    方法二,通過傳遞參數(shù),生成更加漂亮的驗證碼。(推薦使用這個方法,因為系統(tǒng)默認的字體不是很清晰而且比較小)

    <?php include "checkCode.php";?><?php	header("Content-Type:image/png");	$m_code = new checkCode(100, 50); // 或者 $m_code = new checkCode(200, 50);傳遞寬度和高度	$m_code->setCodeFontFile("Arial.ttf"); //引入新的字體	$m_code->setCodeFontSize(22);  //設(shè)置字體大小	$m_code->setCodeCount(5);  //設(shè)置驗證碼的長度	//背景顏色參數(shù)為RGB的分量值, 0-255 使用十六進制 0x00-0xff	$m_code->setBgColor(0xdd, 0xcc, 0xcc);  	$m_code->setTxColor(0x00, 0x11, 0x22);  //,字體顏色同上	$m_code->getCode();?>

    效果圖。

    在上述的介紹中,還可以使用一個函數(shù)

    public function setCodeStr($str)
    {
    $this->m_str = $str;
    }

    這個函數(shù)用于接收用戶傳進來的字符串,比如說,$m_code->setCodeStr("12345678");

    那么生成的圖片里面的字符就是 12345678

    其實,在那個生成雜點的函數(shù)做的不是很好,可以再次接受用戶的輸入,來生成雜點??梢宰層脩魜磉x擇設(shè)置雜點的顏色,雜店的數(shù)量等等。。這些還是需要解決的。由于時間緊促,只能先把這個類實現(xiàn)到這個樣子了。

    PHP編程

    鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

  • 發(fā)表評論 共有條評論
    用戶名: 密碼:
    驗證碼: 匿名發(fā)表
    波多野结衣精品在线| 综合国产精品久久久| 色戒在线免费观看| 97涩涩爰在线观看亚洲| 欧美日韩伦理在线免费| 亚洲精品va在线观看| 日本午夜精华| 国产精品123| 91在线视频播放地址| 久久成人精品无人区| 免费男女羞羞的视频网站主页在线观看| 女人高潮被爽到呻吟在线观看| 波多野结衣乳巨码无在线观看| 国产黄在线免费观看| 欧美女同在线观看| 国内一级毛片| 亚洲另类欧美日韩| 欧美在线精品免播放器视频| 99久久99久久久精品齐齐| 亚洲欧洲一区二区三区久久| 欧美高清视频一区二区三区在线观看| 成人乱色短篇合集| 日韩一区二区电影网| 成人天堂入口网站| 91麻豆国产自产在线观看| 亚洲男子天堂网| 欧美在线观看一区二区三区| 久久久久亚洲av成人网人人软件| 午夜福利视频一区二区| 日本高清www| 久久夜色精品国产噜噜av| 污污免费网站| 成人午夜毛片| 久久久国产一区二区三区| 亚洲乱码一区二区三区| av电影中文字幕| 欧美一级视频精品观看| 欧美国产欧美亚洲国产日韩mv天天看完整| 欧美亚洲免费| 韩日精品中文字幕| 久久久久成人网站| 超碰在线公开免费| 在线日韩av观看| 国产精品久久久久久久泡妞| 亚洲va欧美va天堂v国产综合| 少妇熟女视频一区二区三区| 日韩欧美国产精品一区| 97国产精品视频人人做人人爱| 永久免费在线观看| 国产人妻互换一区二区| 亚洲欧洲美洲国产香蕉| 欧洲毛片视频| 日韩av在线网站| xfplay每日更新av资源| 色香蕉在线观看| 999成人网| 中文字幕在线播放不卡| 国产成人香蕉在线视频fuz| 国产一区二区精品久久91| 成人av资源在线观看| 亚洲一区二区三区高清| 香港欧美日韩三级黄色一级电影网站| 麻豆传媒视频在线观看| 亚洲欧美另类日本| 国产情侣一区在线| 日韩欧美美女一区二区三区| 国产精品久久久久久久久晋中| 色婷婷综合久久久久| 久操视频在线免费播放| 成人免费看片98| 偷拍亚洲精品| 国产男女无套在线播放| 中文字幕欧美视频在线| 你懂的视频在线一区二区| 国产精品嫩草在线观看| 欧美激情视频一区二区三区| 欧美午夜精品理论片| 国产老女人乱淫免费| 青青青青国产视频| 伊人av综合网| 亚洲电影一级片| 亚洲天堂一区二区在线观看| 国精产品一区二区| 免费在线a视频| 九九在线视频| 成人av动漫在线| 亚洲欧美日韩在线高清直播| 久久久精品91| 亚洲精品一区二| 成人在线视频电影| 国产精品吹潮在线观看| 日本激情在线观看| 亚洲国产精品一区二区第四页av| 欧美成人精品欧美一级乱| 日韩av影院在线观看| 97人人爽人人爽人人爽| 色姑娘综合网| 久久久久久九九九九九| 91丨porny丨蝌蚪视频| 婷婷丁香激情网| 久草热视频在线观看| 中文字幕第四页| 欧美性猛交xxxx富婆| 国产成人精彩在线视频九色| 亚洲成人自拍一区| 人妖欧美一区二区| 欧美日韩成人综合在线一区二区| 国产精品无码99re| www在线视频| 蜜桃传媒视频麻豆一区| 麻豆视频网站在线观看| 亚洲欧美日韩人成在线播放| 成人免费无码大片a毛片| 91精品国产乱码久久久久久久久| 伊人亚洲综合网| 国产日产欧美a一级在线| 高清不卡在线观看av| 四季av一区二区三区免费观看| 日本美女一级视频| 日韩电影免费| a优女a优女片| 国内精品久久久久久不卡影院| 色先锋久久av资源部| 欧美激情一级欧美精品| 特黄特色欧美大片| 揉丰满老妇老女人的毛片| 欧美mv日韩mv国产网站| 国产一级视频在线| 欧美亚洲国产激情| 久久久久久久久久久久久av| 欧美一区二区在线播放| 99热这里只有精品2| wwwwww.欧美系列| 大地资源高清在线视频观看| 久久综合久久综合久久| 国产91|九色| av网站中文字幕| 国产精品久久久精品a级小说| 尤物在线视频观看| 57pao国产成永久免费视频| 极品裸体白嫩激情啪啪国产精品| av网站免费在线| 欧美一级精品| 欧美大黑帍在线播放| 国产毛片久久久久久国产毛片| 亚洲一区二区三区免费看| 91视频免费在线观看| 日韩电影不卡一区| 亚洲精品国产精品乱码视色| jizzjizz日本护士免费| 黄动漫网站在线观看| av资源在线免费观看| 欧美aⅴ99久久黑人专区| 国产精品成人69xxx免费视频| 黑鬼狂亚洲人videos| 日韩免费av电影| 久久伊人国产| 国产一区二区观看| 国产三级精品三级在线观看| 久久一区二区三区欧美亚洲| 亚洲激情图片小说视频| 日本又骚又刺激的视频在线观看| 日韩一区二区三区视频| 欧美哺乳videos| 99久久久无码国产精品性波多| 国产精品一区二区三区在线免费观看| 91在线视频九色| 欧美三级午夜理伦三级小说| 亚洲18在线看污www麻豆| 天天色综合天天| 四虎影院在线域名免费观看| 亚洲欧美清纯在线制服| 国模私拍一区二区三区| 亚洲综合在线播放| 五月激情六月综合| 影音先锋中文一区| 亚洲国产精品yw在线观看| 亚洲第一二三区| av超碰免费在线| 成人午夜激情在线| 亚洲一级免费观看| 久久人人爽人人爽人人片av高请| 日本一卡二卡在线播放| 欧美.com| 亚洲美女视频在线免费观看| 久久伊人一区二区| 国产67194| 精精国产xxx在线视频app| 亚洲视频电影在线| 久久女同互慰一区二区三区| 99热在线观看免费精品| 日韩中文字幕免费在线| 国产在线不卡| 国产麻豆一区二区三区精品| 久久国产日韩| 国产精品视频白浆免费视频| 精品久久久久久无码人妻| 亚洲精品永久免费| 欧美做爰猛烈大尺度视频| 免费av一级电影| 毛片在线播放视频| 啦啦啦中文在线观看日本| 天天av天天翘天天综合网| 欧美激情精品久久久久| 国产色a在线观看| 日韩视频一区二区三区在线播放免费观看| 国产一级黄色录像| 欧美国产一级| 久久久综合激的五月天| 午夜激情在线视频| 999久久久免费精品国产牛牛| 日韩精品一区国产| 青青视频在线免费观看| 午夜精品久久久久久久久| 免费99精品国产自在在线| 成人中文字幕在线观看| a资源在线观看| 国产性猛交普通话对白| 国产伊人久久| 精品美女被调教视频大全网站| 天堂а√在线8种子蜜桃视频| 国产精品一区二区久久精品爱涩| 国产富婆一区二区三区| 美女免费免费看网站| 久久久久一本一区二区青青蜜月| 亚洲欧美国产日韩综合| 中文字幕精品综合| 天堂一区二区在线免费观看| 亚洲一卡二卡在线观看| 99精品美女视频在线观看热舞| 米仓穗香在线观看| 国产成人精品免高潮在线观看| 欧美国产一区二区在线观看| 国产黄视频网站| 久久久精品久久久久久96| 日韩欧美黄色| 国内高清免费在线视频| 少妇高潮毛片色欲ava片| 91精品国产高清一区二区三蜜臀| 99国内精品久久久久久久软件| 57pao成人国产永久免费| 亚洲精品久久久久中文字幕二区| 成人看片免费| 日本视频在线一区| 午夜婷婷国产麻豆精品| 国产精品全国免费观看高清| 日韩av在线免费观看| 3d成人h动漫网站入口| 欧美一级免费在线| 欧美做爰爽爽爽爽爽爽| 国产乱码精品一品二品| 成人在线免费看| 欧美丰满熟妇bbbbbb| 88xx成人精品| 在线观看日韩www视频免费| 影音先锋另类| 久久悠悠精品综合网| 97成人超碰视| 欧美激情 国产精品| 精品不卡一区二区三区| 视频精品一区二区三区| 一本久道久久综合多人| 亚洲人123区| 桃色av一区二区| 亚洲精品99999| 亚洲二区三区四区| 欧美xo影院| 久久久久久久久电影| 日韩av中文在线观看| 91中文字幕网| 国产成人一区二区三区电影| 2一3sex性hd| 九九九热精品免费视频观看网站| 这里是久久伊人| 欧美一区二区日韩一区二区| eeuss影院www免费视频| 亚洲综合色网站| 欧美国产视频一区二区| 成人久久久久久久久| 性欧美亚洲xxxx乳在线观看| 欧美午夜精品一区二区三区| 91成人网在线| 欧美成人精品h版在线观看| 午夜私人影院在线观看| 欧美久久一区二区| 日韩激情在线观看| 日韩三级网址| 97av视频在线| 欧美裸身视频免费观看| 久久91精品国产91久久久| 久久中文字幕av一区二区不卡| 日本免费高清一区二区| 快播av资源| 国产中文字幕一区二区| 国产欧美日韩不卡| 污网站视频在线观看| 欧洲一级视频| 日韩精品久久久| 欧美日韩综合视频网址| 无码人妻精品一区二区三应用大全| 久久久久免费看| 五月天丁香婷| 97人人模人人爽人人喊38tv| 久久天天躁日日躁| 亚洲图区综合网| 欧美精产国品一二三区| 欧美调教在线| 日本在线视频不卡| 91激情视频在线| 天堂中文字幕| 国产精品无码专区av免费播放| 国产免费1000拍拍拍| 国产无精乱码一区二区三区| 18av在线视频| 欧美激情综合色综合啪啪五月| 欧美壮男野外gaytube| 欧美丝袜一区二区三区| 国产精品色在线观看| 四虎wwwcom| 91香蕉网站| 黄动漫视频高清在线| 二区在线观看| 欧美特级xxxxbbbb毛片| 免费国产成人av| 玖玖精品一区| 一区二区三区在线观看动漫| 国产精品嫩草影院久久久| 97操在线视频|