Maison > Article > développement back-end > Explication de l'exemple de code de vérification extrême PHP
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
d90e94804a38b999d0f6d02b56d79e5a2cacc6d41bbb37262a98f745aa00fbf0
5f80e307eff5c414e69459f0bdcaaa4c2cacc6d41bbb37262a98f745aa00fbf0
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 :
1219a96a82800cca3c808cb42a60e37c2cacc6d41bbb37262a98f745aa00fbf0
17569962678037bcb4575e53cacd5df62cacc6d41bbb37262a98f745aa00fbf0
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 };3. Côté serveur déploiement (PHP) Dans la première étape, nous définissons une adresse comme "../web/StartCaptchaServlet.php". Que faut-il écrire dans cette adresse :
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(); ?>1. Enregistrez un compte à partir de l'arrière-plan de vérification
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); } ?>Pour plus d'exemples de code de vérification PHP et d'articles connexes, veuillez faire attention au site Web PHP chinois !