Heim  >  Artikel  >  PHP-Framework  >  Ausführliche Erläuterung der ThinkPHP5-Implementierung der gleitenden Verifizierungscode-Funktion von geetest

Ausführliche Erläuterung der ThinkPHP5-Implementierung der gleitenden Verifizierungscode-Funktion von geetest

藏色散人
藏色散人nach vorne
2021-04-01 17:22:363391Durchsuche

Die folgende Tutorial-Kolumne von thinkphp gibt Ihnen eine detaillierte Erklärung der ThinkPHP5-Implementierung der Geetest-Sliding-Bestätigungscode-Funktion. Ich hoffe, dass sie für Freunde hilfreich ist, die sie benötigen!

ThinkPHP5 implementiert die Geetest-Sliding-Bestätigungscode-Funktion

Jetzt sind viele Websites wie Taobao, JD.com usw. dazu übergegangen, den Geetest-Sliding-Bestätigungscode für die Anmeldung zu verwenden. Diese Methode ist besser als die herkömmliche Verifizierung Code-Methode Erfahrung, reduzieren Benutzereingabefehler und spielen auch eine Anti-Diebstahl-Funktion. Heutzutage werden viele der besten Tests von Dritten bereitgestellt und viele davon sind kostenpflichtig. Hier stellen wir hauptsächlich den Geetest vor, den ultimativen gleitenden Verifizierungscode der Thinkphp-Integrationsserie, offizielle Website: http://www.geetest.com

Die Details lauten wie folgt:

1: Registrieren Sie sich, um den zu erhalten key

Registrieren; eine Anwendung erstellen; Schlüssel abrufen; , ursprünglich class.geetestlib.php genannt)

Ausführliche Erläuterung der ThinkPHP5-Implementierung der gleitenden Verifizierungscode-Funktion von geetest

Dazu gehört, dass thinkphp die Klassen von Drittanbietern unter Org/Util/Xb abgelegt und den Namespace wie folgt zur Klassendatei hinzugefügt hat Es kann bei der Instanziierung der Klasse nicht gefunden werden. /function.php

nbsp;html>


  <meta>
  <title>网站管理系统后台</title>
  <script></script>
  <link>
  <script></script>
  <script></script>
  <link>
  <script>
    $(document).ready(function(){
      var verifyimg = $(".verifyimg").attr("src");
      $(".reloadverify").click(function(){
        if( verifyimg.indexOf(&#39;?&#39;)>0){
          $(".verifyimg").attr("src", verifyimg+&#39;&random=&#39;+Math.random());
        }else{
          $(".verifyimg").attr("src", verifyimg.replace(/\?.*$/,&#39;&#39;)+&#39;?&#39;+Math.random());
        }
      });
    });
  </script>


<p>
  </p><h1><a>后台管理中心</a></h1>
  
    

      

            
  •                               
  •         
  •                               
  •         
  •                      

      Ausführliche Erläuterung der ThinkPHP5-Implementierung der gleitenden Verifizierungscode-Funktion von geetest 

                       
  •       
      
                                    

          
           

   <script></script> <script> var handler = function (captchaObj) { // 将验证码加到id为captcha的元素里 captchaObj.appendTo("#captcha"); }; // 获取验证码 $.get("{:U(&#39;Admin/Public/verifys&#39;)}", function(data) { // 使用initGeetest接口 // 参数1:配置参数,与创建Geetest实例时接受的参数一致 // 参数2:回调,回调的第一个参数验证码对象,之后可以使用它做appendTo之类的事件 initGeetest({ gt: data.gt, challenge: data.challenge, product: "float", // 产品形式 offline: !data.success, new_captcha:&#39;true&#39;, width:&#39;260px&#39;, }, handler); },&#39;json&#39;); </script> Ausführliche Erläuterung der ThinkPHP5-Implementierung der gleitenden Verifizierungscode-Funktion von geetest fünf :php generiert den Bestätigungscode und verifiziert

/**
 * geetest检测验证码
 */
function geetest_chcek_verify($data){
  $geetest_id = "7149e2021d7938157e";
  $geetest_key = "62b92039e1e9cf9455";
  $geetest=new \Org\Util\Xb\GeetestLib($geetest_id,$geetest_key);
  $user_id=$_SESSION['geetest']['user_id'];
  $ip_address=$_SESSION['geetest']['ip_address'];
  $dataa = array(
    "user_id" => $user_id, # 网站用户id
    "client_type" => "web", #web:电脑上的浏览器;h5:手机上的浏览器,包括移动应用内完全内置的web_view;native:通过原生SDK植入APP应用的方式
    "ip_address" => $ip_address, # 请在此处传输用户请求验证时所携带的IP
  );
  if ($_SESSION['geetest']['gtserver']==1){
    $result=$geetest->success_validate($data['geetest_challenge'], $data['geetest_validate'], $data['geetest_seccode'], $dataa);
    //return $result;
    if ($result) {
      //return 11;
      return true;
    } else{
      //return 22;
      return false;
    }
  }else{
    if ($geetest->fail_validate($data['geetest_challenge'],$data['geetest_validate'],$data['geetest_seccode'])) {
      //return 33;
      return true;  
    }else{
      //return 44;
      return false;
    }
  }
}
//获取id地址
function GetIP() {
  if (!empty($_SERVER["HTTP_CLIENT_IP"])) {
    $cip = $_SERVER["HTTP_CLIENT_IP"];
  } elseif (!empty($_SERVER["HTTP_X_FORWARDED_FOR"])) {
    $cip = $_SERVER["HTTP_X_FORWARDED_FOR"];
  } elseif (!empty($_SERVER["REMOTE_ADDR"])) {
    $cip = $_SERVER["REMOTE_ADDR"];
  } else {
    $cip = "无法获取!";
  }
  return $cip;
}

Das Rendering ist wie folgt:Ausführliche Erläuterung der ThinkPHP5-Implementierung der gleitenden Verifizierungscode-Funktion von geetestAnmeldeseite

Nach dem Klicken auf die Bestätigung

Das obige ist der detaillierte Inhalt vonAusführliche Erläuterung der ThinkPHP5-Implementierung der gleitenden Verifizierungscode-Funktion von geetest. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:segmentfault.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen