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

首頁 > 編程 > PHP > 正文

php實現的click captcha點擊驗證碼類實例

2020-03-22 19:29:14
字體:
來源:轉載
供稿:網友
本文實例講述了php實現的click captcha點擊驗證碼類及其用法,是非常實用的功能。分享給大家供大家參考之用。具體如下:一、需求:現在常用的表單驗證碼大部分都是要用戶輸入為主,但這樣對手機用戶會不方便。
如果手機用戶訪問,可以不用輸入,而是click某一位置便可確認驗證碼,這樣就會方便很多。二、原理:1.使用PHP imagecreate創建PNG圖象,在圖中畫N個圓弧,其中一個是完整的圓(驗證用),將圓心坐標及半徑記錄入session。2.在瀏覽器,當用戶在驗證碼圖片上點擊時,記錄點擊的位置。3.將用戶點擊的坐標與session記錄的圓心坐標、半徑比較,判斷是否在圓中,如是則驗證通過。程序運行效果如下圖所示:三、實現方法:ClickCaptcha.html' target='_blank'>class.php類文件如下: php /** Click Captcha 驗證碼類 * Date: 2013-05-04 * Author: fdipzone * Ver: 1.0 class ClickCaptcha { // class start public $sess_name = 'm_captcha'; public $width = 500; public $height = 200; public $icon = 5; public $iconColor = array(255, 255, 0); public $backgroundColor = array(0, 0, 0); public $iconSize = 56; private $_img_res = null; public function __construct($sess_name=''){ if(session_id() == ''){ session_start(); if($sess_name!=''){ $this- sess_name = $sess_name; // 設置session name /** 創建驗證碼 */ public function create(){ // 創建圖象 $this- _img_res = imagecreate($this- width, $this- height); // 填充背景 ImageColorAllocate($this- _img_res, $this- backgroundColor[0], $this- backgroundColor[1], $this- backgroundColor[2]); // 分配顏色 $col_ellipse = imagecolorallocate($this- _img_res, $this- iconColor[0], $this- iconColor[1], $this- iconColor[2]); $minArea = $this- iconSize/2+3; // 混淆用圖象,不完整的圓 for($i=0; $i $this- icon; $i++){ $x = mt_rand($minArea, $this- width-$minArea); $y = mt_rand($minArea, $this- height-$minArea); $s = mt_rand(0, 360); $e = $s + 330; imagearc($this- _img_res, $x, $y, $this- iconSize, $this- iconSize, $s, $e, $col_ellipse); // 驗證用圖象,完整的圓 $x = mt_rand($minArea, $this- width-$minArea); $y = mt_rand($minArea, $this- height-$minArea); $r = $this- iconSize/2; imagearc($this- _img_res, $x, $y, $this- iconSize, $this- iconSize, 0, 360, $col_ellipse); // 記錄圓心坐標及半徑 $this- captcha_session($this- sess_name, array($x, $y, $r)); // 生成圖象 Header("Content-type: image/PNG"); ImagePNG($this- _img_res); ImageDestroy($this- _img_res); exit(); /** 檢查驗證碼 * @param String $captcha 驗證碼 * @param int $flag 驗證成功后 0:不清除session 1:清除session * @return boolean public function check($captcha, $flag=1){ if(trim($captcha)==''){ return false; if(!is_array($this- captcha_session($this- sess_name))){ return false; list($px, $py) = explode(',', $captcha); list($cx, $cy, $cr) = $this- captcha_session($this- sess_name); if(isset($px) && is_numeric($px) && isset($py) && is_numeric($py) && isset($cx) && is_numeric($cx) && isset($cy) && is_numeric($cy) && isset($cr) && is_numeric($cr)){ if($this- pointInArea($px,$py,$cx,$cy,$cr)){ if($flag==1){ $this- captcha_session($this- sess_name,''); return true; return false; /** 判斷點是否在圓中 * @param int $px 點x * @param int $py 點y * @param int $cx 圓心x * @param int $cy 圓心y * @param int $cr 圓半徑 * sqrt(x^2+y^2) r private function pointInArea($px, $py, $cx, $cy, $cr){ $x = $cx-$px; $y = $cy-$py; return round(sqrt($x*$x + $y*$y)) /** 驗證碼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
if(isset($_POST['send']) && $_POST['send']=='true'){ // submit $name = isset($_POST['name']) trim($_POST['name']) : ''; $captcha = isset($_POST['captcha']) trim($_POST['captcha']) : ''; $obj = new ClickCaptcha(); if($obj- check($captcha)){ echo 'your name is:'.$name; }else{ echo 'captcha not match'; echo ' a href="demo.php" back /a }else{ // html !DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd" html head meta http-equiv="content-type" content="text/html; charset=utf-8" title Click Captcha Demo /title script type="text/javascript" src="jquery-1.6.2.min.js" /script script type="text/javascript" $(function(){ $('#captcha_img').click(function(e){ var x = e.pageX - $(this).offset().left; var y = e.pageY - $(this).offset().top; $('#captcha').val(x+','+y); $('#btn').click(function(e){ if($.trim($('#name').val())==''){ alert('Please input name!'); return false; if($.trim($('#captcha').val())==''){ alert('Please click captcha!'); return false; $('#form1')[0].submit(); /script /head body form name="form1" id="form1" method="post" action="demo.php" onsubmit="return false" p name: input type="text" name="name" id="name" /p p Captcha:Please click full circle br img id="captcha_img" src="demo.php get_captcha=1 =time() " /p p input type="submit" id="btn" value="submit" /p input type="hidden" name="send" value="true" input type="hidden" name="captcha" id="captcha" /form /body /html php } 本文完整源碼點擊此處本站下載。希望本文所述對大家的PHP程序設計有所幫助。PHP教程

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
综合网日日天干夜夜久久| 亚洲a成v人在线观看| 中文字幕久热精品视频在线| 国产91精品在线播放| 欧美精品在线播放| 久久69精品久久久久久国产越南| 1769国内精品视频在线播放| 久久综合伊人77777| 国产成人在线一区二区| 岛国av一区二区三区| 欧美日韩性视频| 色播久久人人爽人人爽人人片视av| 日韩国产高清污视频在线观看| 国内外成人免费激情在线视频| 色与欲影视天天看综合网| www.久久久久久.com| 国产精品视频网| 91高潮在线观看| 国产精品av网站| 91精品国产九九九久久久亚洲| 久久免费高清视频| 91免费欧美精品| 久久成人精品视频| 精品视频在线导航| 2025国产精品视频| 国产精品91一区| 欧美精品在线免费| 亚洲男人的天堂网站| 欧美成人一区在线| 亚洲成人av片| 国产精品露脸自拍| 91视频88av| 日韩电影视频免费| 亚洲国产欧美自拍| 亚洲第一免费网站| 日本亚洲欧洲色α| 亚洲一区二区三区乱码aⅴ蜜桃女| 日产精品久久久一区二区福利| 亚洲人在线视频| 国产精品亚洲自拍| 日韩在线国产精品| 国产成人精品免费视频| 欧美老妇交乱视频| 91大神福利视频在线| 亚洲欧美中文日韩在线v日本| 精品国产鲁一鲁一区二区张丽| 亚洲国产精品久久久久秋霞不卡| 久久久久久久久久久免费| 日本精品免费一区二区三区| 国产成人久久久| 欧美夜福利tv在线| 午夜精品视频在线| 日韩欧美一区视频| 中文字幕精品一区久久久久| 国产精欧美一区二区三区| 欧美国产日韩在线| 亚洲一区二区三区在线免费观看| 欧美精品免费看| 亚洲精品中文字幕女同| 欧美性videos高清精品| 国产乱肥老妇国产一区二| 久久久欧美一区二区| 欧美又大又粗又长| 亚洲精品suv精品一区二区| 成人国产在线视频| 欧美网站在线观看| 97视频在线观看免费| 欧美成人黑人xx视频免费观看| 一区二区三区视频观看| 国产91在线播放九色快色| 九九久久久久久久久激情| 亚洲国产精久久久久久| 国产在线98福利播放视频| 国产mv免费观看入口亚洲| 国产玖玖精品视频| 欧美日韩国产一区二区| 激情懂色av一区av二区av| 色777狠狠综合秋免鲁丝| 亚洲精品日韩欧美| 午夜精品99久久免费| 91黑丝高跟在线| 国产主播喷水一区二区| 日韩最新在线视频| 国语自产精品视频在线看| 久久精品青青大伊人av| 欧美影院成年免费版| 成人国产精品色哟哟| 亚洲视频在线免费观看| 97视频在线观看视频免费视频| 国产精品久久久久久久一区探花| 欧美黑人巨大xxx极品| 国产69精品久久久久9999| 精品视频久久久久久久| 精品久久久久久久久久ntr影视| 91亚洲精品久久久久久久久久久久| 国产精品成人免费视频| 精品一区精品二区| 九九久久国产精品| 日韩av手机在线看| 亚洲精品免费av| 国产日韩欧美日韩大片| 91大神在线播放精品| 亚洲国产成人爱av在线播放| 韩国精品美女www爽爽爽视频| 欧美日韩性视频在线| 欧美日韩福利在线观看| 国产香蕉精品视频一区二区三区| 亚洲精品一区中文字幕乱码| 成人自拍性视频| 欧美日韩国产一区在线| 欧美裸身视频免费观看| 欧美激情亚洲国产| 成人激情在线观看| 亚洲欧洲成视频免费观看| 国产精品伦子伦免费视频| 一本色道久久88综合亚洲精品ⅰ| 欧美xxxx做受欧美.88| 97香蕉久久夜色精品国产| 欧美日韩亚洲系列| 亚洲桃花岛网站| 欧美第一黄色网| 欧美一区二区三区四区在线| 欧美成人在线免费视频| 亚洲影院在线看| 有码中文亚洲精品| 日韩女在线观看| 国产精品久久久久久久久久尿| 日本高清久久天堂| 国产丝袜精品视频| 亚洲免费高清视频| 亚洲人成人99网站| 亚洲精品电影久久久| 国产日韩欧美日韩| 欧美重口另类videos人妖| 在线亚洲男人天堂| 亚洲欧洲黄色网| 岛国av一区二区| 久久久999国产精品| 日韩av大片在线| 欧美日韩激情网| 欧洲成人免费视频| 日韩福利视频在线观看| 久久综合免费视频| 国产视频久久久久久久| 国产免费观看久久黄| 日韩中文字幕在线| 国产精品成人av性教育| 亚洲欧美日韩综合| 成人免费在线视频网站| 中文字幕精品一区久久久久| 俺去亚洲欧洲欧美日韩| 亚洲va欧美va国产综合剧情| 色中色综合影院手机版在线观看| 国产v综合ⅴ日韩v欧美大片| 午夜精品福利在线观看| 国产美女91呻吟求| 在线免费观看羞羞视频一区二区| 91av视频导航| 国产91九色视频| 日韩网站免费观看| 在线a欧美视频| 中文字幕国产亚洲| 国产综合久久久久久| 亚洲片国产一区一级在线观看|