国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > PHP > 正文

關于php Captcha 驗證碼類的講解

2020-03-22 18:04:13
字體:
來源:轉載
供稿:網友
private $sname = html' target='_blank'>public function __construct($sname= ){ // $sname captcha session name $this- sname = $sname== ? m_captcha : $sname; /** 生成驗證碼圖片 * @param int $length 驗證碼長度 * @param Array $param 參數 * @return IMG public function create($length=4,$param=array()){ Header( Content-type: image/PNG $authnum = $this- random($length); //生成驗證碼字符. $width = isset($param[ width ])? $param[ width ] : 13; //文字寬度 $height = isset($param[ height ])? $param[ height ] : 18; //文字高度 $pnum = isset($param[ pnum ])? $param[ pnum ] : 100; //干擾象素個數 $lnum = isset($param[ lnum ])? $param[ lnum ] : 2; //干擾線條數 $this- captcha_session($this- sname,$authnum); //將隨機數寫入session $pw = $width*$length+10; $ph = $height+6; $im = imagecreate($pw,$ph); //imagecreate() 新建圖像,大小為 x_size 和 y_size 的空白圖像。 $black = ImageColorAllocate($im, 238,238,238); //設置背景顏色 $values = array( mt_rand(0,$pw), mt_rand(0,$ph), mt_rand(0,$pw), mt_rand(0,$ph), mt_rand(0,$pw), mt_rand(0,$ph), mt_rand(0,$pw), mt_rand(0,$ph), mt_rand(0,$pw), mt_rand(0,$ph), mt_rand(0,$pw), mt_rand(0,$ph) imagefilledpolygon($im, $values, 6, ImageColorAllocate($im, mt_rand(170,255),mt_rand(200,255),mt_rand(210,255))); //設置干擾多邊形底圖 /* 文字 */ for ($i = 0; $i strlen($authnum); $i++){ $font = ImageColorAllocate($im, mt_rand(0,50),mt_rand(0,150),mt_rand(0,200));//設置文字顏色 $x = $i/$length * $pw + rand(1, 6); //設置隨機X坐標 $y = rand(1, $ph/3); //設置隨機Y坐標 imagestring($im, mt_rand(4,6), $x, $y, substr($authnum,$i,1), $font); /* 加入干擾象素 */ for($i=0; $i $pnum; $i++){ $dist = ImageColorAllocate($im, mt_rand(0,255),mt_rand(0,255),mt_rand(0,255)); //設置雜點顏色 imagesetpixel($im, mt_rand(0,$pw) , mt_rand(0,$ph) , $dist); /* 加入干擾線 */ for($i=0; $i $lnum; $i++){ $dist = ImageColorAllocate($im, mt_rand(50,255),mt_rand(150,255),mt_rand(200,255)); //設置線顏色 imageline($im,mt_rand(0,$pw),mt_rand(0,$ph),mt_rand(0,$pw),mt_rand(0,$ph),$dist); ImagePNG($im); //以 PNG 格式將圖像輸出到瀏覽器或文件 ImageDestroy($im); //銷毀一圖像 /** 檢查驗證碼 * @param String $captcha 驗證碼 * @param int $flag 驗證成功后 0:不清除session 1:清除session * @return boolean public function check($captcha,$flag=1){ if(empty($captcha)){ return false; }else{ if(strtoupper($captcha)==$this- captcha_session($this- sname)){ //檢測驗證碼 if($flag==1){ $this- captcha_session($this- sname, return true; }else{ return false; /* 產生隨機數函數 * @param int $length 需要隨機生成的字符串數 * @return String private function random($length){ $hash = $chars = ABCDEFGHIJKLMNPQRSTUVWXYZ23456789 $max = strlen($chars) - 1; for($i = 0; $i $length; $i++) { $hash .= $chars[mt_rand(0, $max)]; return $hash; /** 驗證碼session處理方法 * @param String $name captcha session name * @param String $value * @return String private function captcha_session($name,$value=null){ if(isset($value)){ if($value!== ){ $_SESSION[$name] = $value; }else{ unset($_SESSION[$name]); }else{ return isset($_SESSION[$name])? $_SESSION[$name] : } // class end?

demo

 ? session_start(); require_once( Captcha.class.php  $obj = new Captcha($sname); # 創建Captcha類對象 # $sname為保存captcha的session name,可留空,留空則為 m_captcha  $obj- create($length,$param); # 創建Captcha并輸出圖片 # $length為Captcha長度,可留空,默認為4 /* $param = array( width = 13 captcha 字符寬度 height = 18 captcha 字符高度 pnum = 100 干擾點個數 lnum = 2 干擾線條數 $obj- check($captcha,$flag); # 檢查用戶輸入的驗證碼是否正確,true or false # $captcha為用戶輸入的驗證碼,必填 # $flag 可留空,默認為1  # 1:當驗證成功后自動清除captcha session # 0:當驗證成功后不清除captcha session,用於ajax檢查? 

本文講解了關于php Captcha 驗證碼類的相關內容,更多相關知識請關注php 。

相關推薦:

MySQL的information_schema 相關內容

查看mysql數據庫大小、表大小和最后修改時間

詳解Sublime Text 2

以上就是關于php Captcha 驗證碼類的講解的詳細內容,PHP教程

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 大连市| 岑溪市| 甘泉县| 蒙自县| 新营市| 龙门县| 苗栗市| 财经| 万安县| 巫山县| 安顺市| 会泽县| 蒙自县| 襄城县| 无为县| 清苑县| 长子县| 莎车县| 景德镇市| 平遥县| 聂拉木县| 孟连| 封丘县| 龙胜| 盘山县| 耒阳市| 阿瓦提县| 兴和县| 江山市| 通州市| 讷河市| 和平区| 枣强县| 昭苏县| 府谷县| 利川市| 辽阳市| 宜宾县| 广南县| 尼勒克县| 肃宁县|