Vous pouvez trouver cet article, ce qui signifie que vous n'êtes plus complètement étranger à la vérification Jiexian. Je ne vais pas entrer dans toutes les bêtises et commencer simplement à expliquer comment l'utiliser. Mais avant cela, collons quelques URL que vous pourriez. utilisation :
Site officiel : http://www.geetest.com/
Document officiel : http://www.geetest.com/install/sections/idx -basic-introduction. html
github : https://github.com/GeeTeam/gt-php-sdk.git
Comment utiliser :
Premier Pour confirmer le recto -page d'utilisation de fin, telle que la page de connexion
1. Accédez à la bibliothèque de classes importées sur la page de connexion. :
Si votre site Web utilise https, il vous suffit de changer l'endroit où Jiqianku est introduit au protocole https, et il n'est pas nécessaire de changer d'autres endroits. Par exemple, remplacez-le par le code suivant :
2. >Le code suivant Il doit être exécuté après le chargement de la page. Si vous utilisez jQuery, vous pouvez l'écrire dans $(function(){});
Le code ci-dessus signifie qu'après le La page est chargée, vous devez spécifier Obtenir les informations du code de vérification à partir de l'adresse URL. Quant à ce qui est écrit dans l'adresse URL ci-dessus "../web/StartCaptchaServlet.php", nous l'expliquerons en détail côté serveur. déploiement de code.$.ajax({ // 获取id,challenge,success(是否启用failback) url: "../web/StartCaptchaServlet.php?t=" + (new Date()).getTime(), // 加随机数防止缓存 type: "get", dataType: "json", success: function (data) { // 使用initGeetest接口 // 参数1:配置参数 // 参数2:回调,回调的第一个参数验证码对象,之后可以使用它做appendTo之类的事件 initGeetest({ gt: data.gt, challenge: data.challenge, product: "popup", // 产品形式,包括:float,embed,popup。注意只对PC版验证码有效 offline: !data.success // 表示用户后台检测极验服务器是否宕机,与SDK配合,用户一般不需要关注 }, handlerPopup); } });
Mais il convient de noter qu'il existe une fonction de rappel appelée "handlerPopup" dans le code ci-dessus. Cette fonction est le véritable code d'initialisation dont vous avez besoin pour vérifier le code : comme suit :
<. 🎜>À ce stade, tous les paramètres front-end ont été écrits, documentation officielle : http://www.geetest.com/install/sections/idx-client-sdk.html
// 代码详细说明 var handlerPopup = function (captchaObj) { // 注册提交按钮事件,比如在登陆页面的登陆按钮 $("#popup-submit").click(function () { // 此处省略在登陆界面中,获取登陆数据的一些步骤 // 先校验是否点击了验证码 var validate = captchaObj.getValidate(); if (!validate) { alert('请先完成验证!'); return; } // 提交验证码信息,比如登陆页面,你需要提交登陆信息,用户名和密码等登陆数据 $.ajax({ url: "../web/VerifyLoginServlet.php", type: "post", // dataType: "json", data: { // 用户名和密码等其他数据,自己获取,不做演示 username:username, password:password, // 验证码数据,这些数据不用自己获取 // 这是二次验证所需的三个值 // 当然,你也可以直接设置验证码单独校验,省略其他信息 geetest_challenge: validate.geetest_challenge, geetest_validate: validate.geetest_validate, geetest_seccode: validate.geetest_seccode }, // 这里是正确返回处理结果的处理函数 // 假设你就返回了1,2,3 // 当然,正常情况是返回JSON数据 success: function (result) { // 1表示验证码验证失败 if (result == "1") { alert("验证码验证失败!"); }else if (result == "2") { alert("用户名或密码错误!"); }else if (result == "3") { alert("登陆成功!"); // 登陆成功了,可以在这里做其他处理 }else{ alert("登陆错误!"); } } }); }); // 弹出式需要绑定触发验证码弹出按钮 // 比如在登陆页面,这个触发按钮就是登陆按钮 captchaObj.bindOn("#popup-submit"); // 将验证码加到id为captcha的元素里 // 验证码将会在下面指定的元素中显示出来 captchaObj.appendTo("#popup-captcha"); // 更多接口参考:http://www.geetest.com/install/sections/idx-client-sdk.html };
Comment obtenir l'ID de vérification et la clé de vérification :
<?php // 引入文件 require_once dirname(dirname(__FILE__)) . '/lib/class.geetestlib.php'; require_once dirname(dirname(__FILE__)) . '/config/config.php'; // 实例化,实例化的参数在config中配置,分别是:验证ID 和 验证Key,如何获取下面会说。 $GtSdk = new GeetestLib(CAPTCHA_ID, PRIVATE_KEY); session_start(); // 这个是用户的标识,或者说是给极验服务器区分的标识,如果你项目没有预先设置,可以像下面这样设置: if(!isset($_SESSION['user_id'])){ $_SESSION['user_id']=uniqid();// 生成一个唯一ID } $user_id = $_SESSION['user_id']; // 或者,你就直接写成: // $user_id = "test"; // 生成验证码信息,并返回给客户端 $status = $GtSdk->pre_process($user_id); $_SESSION['gtserver'] = $status; $_SESSION['user_id'] = $user_id; echo $GtSdk->get_response_str(); ?>
2 Ajoutez une vérification pour obtenir un ensemble d'ID/clé actuellement vérifiés
3. le fichier config.php respectivement La valeur de la variable captcha_id/private_key dans
4. Vérification côté serveur (vérification secondaire) après avoir cliqué sur le bouton de soumission
Merci d'avoir lu, j'espère que cela pourra. aidez tout le monde, merci pour votre soutien à ce site !
<?php // 引入文件 require_once dirname(dirname(__FILE__)) . '/lib/class.geetestlib.php'; require_once dirname(dirname(__FILE__)) . '/config/config.php'; session_start(); $GtSdk = new GeetestLib(CAPTCHA_ID, PRIVATE_KEY); // 比如你设置了一个验证码是否验证通过的标识 $code_flag=false; // 这里获取你之前设置的user_id,传送给极验服务器做校验 $user_id = $_SESSION['user_id']; if ($_SESSION['gtserver'] == 1) { $result = $GtSdk->success_validate($_POST['geetest_challenge'], $_POST['geetest_validate'], $_POST['geetest_seccode'], $user_id); if ($result) { // 验证码验证成功 $code_flag=true; } }else{ if ($GtSdk->fail_validate($_POST['geetest_challenge'],$_POST['geetest_validate'],$_POST['geetest_seccode'])) { // 验证码验证成功 $code_flag=true; } } // 如果验证码验证成功,再进行其他校验 if($code_flag){ // 其他验证操作 // 用户名不对时,返回2,其他错误返回3,等等。。。。 }else{ // 验证码验证失败,返回1,这里和上面相呼应,当然我的项目没有简单的返回1,而是返回了JSON数据 echo 1; exit(-1); } ?>