Heim > PHP-Framework > Denken Sie an PHP > 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

藏色散人
Freigeben: 2021-04-02 08:57:47
nach vorne
3497 Leute haben es durchsucht

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>
  
Nach dem Login kopieren
    

      

            
  •                               
  •         
  •                               
  •         
  •                      

      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;
}
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:segmentfault.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage