婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > php+js實現的拖動滑塊驗證碼驗證表單操作示例【附源碼下載】

php+js實現的拖動滑塊驗證碼驗證表單操作示例【附源碼下載】

熱門標簽:天客通地圖標注 菏澤語音外呼系統運營商 臨沂crm外呼系統平臺 梧州市機器人外呼系統怎么樣 如何在世界地圖標注 廈門400電話辦理選易號網 公司外呼系統中心 地圖標注符號樣式有 電子地圖標注怎么修改

本文實例講述了php+js實現的拖動滑塊驗證碼驗證表單操作。分享給大家供大家參考,具體如下:

現在很多網站,比如淘寶,京東等都改用使用極驗拖動驗證碼實現登錄,這種方式比傳統的驗證碼方式有更好的體驗,減少用戶輸入的錯誤,也同樣能起到防盜刷的功能。現在很多極驗都是第三方的,也很多都是收費的。今天在這里給大家分享自己用原生php實現的一個極驗的代碼。用原生php的好處就是以后你要嵌套到什么框架,可以直接用核心代碼,改一改就好了。

極驗拖動動畫圖

代碼文件截圖

代碼實現

html文件

!DOCTYPE html>
html lang="">
head>
  meta charset="utf-8">
  meta http-equiv="x-ua-compatible" content="ie=edge">
  meta name="viewport" content="width=device-width, initial-scale=1">
  title>極驗滑塊拖動驗證碼-碼農社區-web視頻分享網/title>
  script type="text/javascript" src="tn_code.js?v=35">/script>
  link rel="stylesheet" type="text/css" href="style.css?v=27" rel="external nofollow" />
style type="text/css">/style>
/head>
body style="text-align:center;">
div class="tncode" style="text-align: center;margin: 100px auto;">/div>
script type="text/javascript">
$TN.onsuccess(function(){
//驗證通過
});
/script> 

php文件:check.php

?php
require_once dirname(__FILE__).'/TnCode.class.php';
$tn = new TnCode();
if($tn->check()){
    $_SESSION['tncode_check'] = 'ok';
  echo "ok";
}else{
    $_SESSION['tncode_check'] = 'error';
  echo "error";
}

?>

主要核心文件:TnCode.class.php

?php
class TnCode
{
  var $im = null;
  var $im_fullbg = null;
  var $im_bg = null;
  var $im_slide = null;
  var $bg_width = 240;
  var $bg_height = 150;
  var $mark_width = 50;
  var $mark_height = 50;
  var $bg_num = 6;
  var $_x = 0;
  var $_y = 0;
  //容錯象素 越大體驗越好,越小破解難道越高
  var $_fault = 3;
  function __construct(){
    //ini_set('display_errors','On');
    //
    error_reporting(0);
    if(!isset($_SESSION)){
      session_start();
    }
  }
  function make(){
    $this->_init();
    $this->_createSlide();
    $this->_createBg();
    $this->_merge();
    $this->_imgout();
    $this->_destroy();
  }

  function check($offset=''){
    if(!$_SESSION['tncode_r']){
      return false;
    }
    if(!$offset){
      $offset = $_REQUEST['tn_r'];
    }
    $ret = abs($_SESSION['tncode_r']-$offset)=$this->_fault;
    if($ret){
      unset($_SESSION['tncode_r']);
    }else{
      $_SESSION['tncode_err']++;
      if($_SESSION['tncode_err']>10){//錯誤10次必須刷新
        unset($_SESSION['tncode_r']);
      }
    }
    return $ret;
  }

  private function _init(){
    $bg = mt_rand(1,$this->bg_num);
    $file_bg = dirname(__FILE__).'/bg/'.$bg.'.png';
    $this->im_fullbg = imagecreatefrompng($file_bg);
    $this->im_bg = imagecreatetruecolor($this->bg_width, $this->bg_height);
    imagecopy($this->im_bg,$this->im_fullbg,0,0,0,0,$this->bg_width, $this->bg_height);
    $this->im_slide = imagecreatetruecolor($this->mark_width, $this->bg_height);
    $_SESSION['tncode_r'] = $this->_x = mt_rand(50,$this->bg_width-$this->mark_width-1);
    $_SESSION['tncode_err'] = 0;
    $this->_y = mt_rand(0,$this->bg_height-$this->mark_height-1);
  }

  private function _destroy(){
    imagedestroy($this->im);
    imagedestroy($this->im_fullbg);
    imagedestroy($this->im_bg);
    imagedestroy($this->im_slide);
  }
  private function _imgout(){
    if(!$_GET['nowebp']function_exists('imagewebp')){//優先webp格式,超高壓縮率
      $type = 'webp';
      $quality = 40;//圖片質量 0-100
    }else{
      $type = 'png';
      $quality = 7;//圖片質量 0-9
    }
    header('Content-Type: image/'.$type);
    $func = "image".$type;
    $func($this->im,null,$quality);
  }
  private function _merge(){
    $this->im = imagecreatetruecolor($this->bg_width, $this->bg_height*3);
    imagecopy($this->im, $this->im_bg,0, 0 , 0, 0, $this->bg_width, $this->bg_height);
    imagecopy($this->im, $this->im_slide,0, $this->bg_height , 0, 0, $this->mark_width, $this->bg_height);
    imagecopy($this->im, $this->im_fullbg,0, $this->bg_height*2 , 0, 0, $this->bg_width, $this->bg_height);
    imagecolortransparent($this->im,0);//16777215
  }

  private function _createBg(){
    $file_mark = dirname(__FILE__).'/img/mark.png';
    $im = imagecreatefrompng($file_mark);
    header('Content-Type: image/png');
    //imagealphablending( $im, true);
    imagecolortransparent($im,0);//16777215
    //imagepng($im);exit;
    imagecopy($this->im_bg, $im, $this->_x, $this->_y , 0 , 0 , $this->mark_width, $this->mark_height);
    imagedestroy($im);
  }

  private function _createSlide(){
    $file_mark = dirname(__FILE__).'/img/mark2.png';
    $img_mark = imagecreatefrompng($file_mark);
    imagecopy($this->im_slide, $this->im_fullbg,0, $this->_y , $this->_x, $this->_y, $this->mark_width, $this->mark_height);
    imagecopy($this->im_slide, $img_mark,0, $this->_y , 0, 0, $this->mark_width, $this->mark_height);
    imagecolortransparent($this->im_slide,0);//16777215
    //header('Content-Type: image/png');
    //imagepng($this->im_slide);exit;
    imagedestroy($img_mark);
  }

}
?>

附:完整實例代碼點擊此處本站下載。

更多關于PHP相關內容感興趣的讀者可查看本站專題:《PHP圖形與圖片操作技巧匯總》、《PHP數組(Array)操作技巧大全》、《PHP數據結構與算法教程》、《php程序設計算法總結》、《PHP數學運算技巧總結》、《php字符串(string)用法總結》及《php常見數據庫操作技巧匯總》

希望本文所述對大家PHP程序設計有所幫助。

您可能感興趣的文章:
  • JavaScript實現表單驗證功能
  • JS表單驗證插件之數據與邏輯分離操作實例分析【策略模式】
  • JS使用正則表達式實現常用的表單驗證功能分析
  • laravel框架使用FormRequest進行表單驗證,驗證異常返回JSON操作示例
  • JS簡單表單驗證功能完整示例
  • 分享JS表單驗證源碼(帶錯誤提示及密碼等級)
  • JavaScript使用表單元素驗證表單的示例代碼
  • vue.js表單驗證插件(vee-validate)的使用教程詳解
  • 使用vue自定義指令開發表單驗證插件validate.js
  • 原生js 實現表單驗證功能

標簽:綿陽 黃石 貴陽 雞西 迪慶 白城 郴州 瀘州

巨人網絡通訊聲明:本文標題《php+js實現的拖動滑塊驗證碼驗證表單操作示例【附源碼下載】》,本文關鍵詞  php+js,實現,的,拖動,滑塊,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《php+js實現的拖動滑塊驗證碼驗證表單操作示例【附源碼下載】》相關的同類信息!
  • 本頁收集關于php+js實現的拖動滑塊驗證碼驗證表單操作示例【附源碼下載】的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    精品国产乱码久久久久久图片 | 欧美午夜影院一区| 91国偷自产一区二区开放时间| 欧美一级艳片视频免费观看| 亚洲色图欧洲色图| 99久久99久久久精品齐齐| 国产精品蜜臀av| 欧美亚洲国产一区二区三区| 亚洲国产日韩综合久久精品| 一本久久a久久免费精品不卡| 久久久精品人体av艺术| 成人免费观看男女羞羞视频| 日本一区二区三区四区在线视频 | 成人sese在线| 国产精品系列在线| 91免费版pro下载短视频| 亚洲天堂精品在线观看| 欧美在线观看禁18| 麻豆精品在线播放| 亚洲欧美在线视频| 久久久久国产精品人| 成人av在线电影| 水野朝阳av一区二区三区| 精品免费国产二区三区| 色婷婷激情久久| 国产激情91久久精品导航| 国产精品剧情在线亚洲| 99精品欧美一区二区三区综合在线| 色综合视频在线观看| 99国产精品久久久久| 91国偷自产一区二区三区观看 | 国产成人精品免费网站| 久久亚洲综合av| 2023国产一二三区日本精品2022| 日韩欧美国产wwwww| 欧美高清一级片在线| 日韩一区和二区| 国内偷窥港台综合视频在线播放| 色婷婷综合激情| 蜜臀av性久久久久蜜臀aⅴ四虎| 国产免费久久精品| 精品动漫一区二区三区在线观看| 色悠悠久久综合| 成人午夜电影小说| 久久99精品国产.久久久久| 自拍偷拍国产精品| 17c精品麻豆一区二区免费| 26uuu久久综合| 在线观看视频欧美| 午夜电影网亚洲视频| 亚洲福利视频三区| 日韩激情视频网站| 国产一区二区三区四| 精品一区二区三区在线播放| 久久99精品一区二区三区| 国产精品2024| 欧美写真视频网站| 制服丝袜成人动漫| 久久色视频免费观看| 国产精品美女久久久久久久久| 一色桃子久久精品亚洲| 日本vs亚洲vs韩国一区三区| 视频一区国产视频| 成人精品视频.| 欧美日本一区二区在线观看| 26uuu色噜噜精品一区二区| 中文字幕一区二区在线观看 | 成人av在线资源网| 91精品久久久久久久久99蜜臂| 国产日韩综合av| 美女视频一区二区三区| 国产精品18久久久久久久久| 欧美喷潮久久久xxxxx| 一级中文字幕一区二区| 精品一区二区综合| 日韩欧美一区二区久久婷婷| 亚洲国产另类av| 欧美日韩免费一区二区三区| 亚洲日本护士毛茸茸| av爱爱亚洲一区| 一级精品视频在线观看宜春院| 成人激情电影免费在线观看| 国产欧美日韩久久| 男女男精品视频| 91精品国产福利| 激情五月激情综合网| 久久亚洲精品小早川怜子| 粉嫩绯色av一区二区在线观看 | 欧美电影影音先锋| 日本视频一区二区| 久久久久久9999| 粉嫩aⅴ一区二区三区四区| 日韩色视频在线观看| 国产精品久久久久国产精品日日 | 亚洲欧美激情一区二区| 欧美电影影音先锋| 日韩欧美在线观看一区二区三区| 色综合欧美在线视频区| 日本成人在线网站| 国产三级精品视频| 日韩欧美成人午夜| 欧美日韩国产一级| 欧美精品vⅰdeose4hd| 韩国女主播一区二区三区| 欧美三级蜜桃2在线观看| 在线观看网站黄不卡| 日本一区二区三区国色天香 | 欧美日韩在线播放三区| 青草国产精品久久久久久| 国产精品你懂的在线欣赏| 欧美福利视频一区| 91在线免费看| 成人晚上爱看视频| 美女一区二区在线观看| 亚洲免费成人av| 国产精品嫩草影院com| 久久久久久久久久久久久久久99| 欧美亚洲一区三区| 在线视频中文字幕一区二区| 成人免费三级在线| 国产精品99久久久久久似苏梦涵 | 国产精品超碰97尤物18| 宅男噜噜噜66一区二区66| 一本色道久久加勒比精品| 国产精品亚洲视频| 粉嫩一区二区三区在线看| 粉嫩13p一区二区三区| 国产成人亚洲综合a∨猫咪| 国产盗摄女厕一区二区三区| 久久99精品国产麻豆婷婷| 蜜臀av性久久久久蜜臀aⅴ四虎 | 久久久激情视频| 国产精品第13页| 亚洲精品久久7777| 丝袜美腿亚洲一区| 国产精品2024| 欧美视频精品在线| 精品国产青草久久久久福利| 中文字幕在线不卡一区| 一片黄亚洲嫩模| 亚洲视频综合在线| 亚洲观看高清完整版在线观看| 美国十次综合导航| 色婷婷狠狠综合| 国产欧美日本一区二区三区| 亚洲综合在线电影| 成人免费看的视频| 国产日韩在线不卡| 精品一区二区三区在线视频| caoporm超碰国产精品| www国产亚洲精品久久麻豆| 日本欧美久久久久免费播放网| 99久久久无码国产精品| 久久夜色精品国产噜噜av| 麻豆成人久久精品二区三区红| 91蜜桃免费观看视频| 樱花草国产18久久久久| 成人免费毛片app| 一区二区三区欧美激情| 99久久久免费精品国产一区二区| 欧美videossexotv100| 国产乱理伦片在线观看夜一区| 日韩三级高清在线| 国产精品小仙女| 亚洲精品国产视频| 欧美日韩一级二级| 日韩成人免费看| 欧美不卡一区二区| 97精品电影院| 日韩二区三区四区| 久久色.com| 欧美日韩一区在线| 激情欧美一区二区三区在线观看| 欧美经典一区二区| 欧美日韩一级二级三级| 久久99最新地址| 最近中文字幕一区二区三区| 欧美日韩国产免费一区二区 | 日韩欧美激情一区| 99这里只有久久精品视频| 午夜精品福利一区二区三区蜜桃| 久久婷婷国产综合精品青草| 欧美三级日韩在线| 国产传媒欧美日韩成人| 亚洲国产欧美一区二区三区丁香婷| 国产亚洲欧美一区在线观看| 一本一道综合狠狠老| 狠狠狠色丁香婷婷综合激情| 亚洲男帅同性gay1069| 国产欧美日韩视频一区二区| 日韩精品一区二区三区视频| 欧美三级欧美一级| 精品视频123区在线观看| 99国产精品国产精品毛片| 亚洲乱码日产精品bd| 亚洲欧洲国产日韩| 亚洲欧美色图小说| 亚洲图片欧美色图| 日日夜夜一区二区| 午夜精品久久久|