你能找到这篇文章,说明你对极验验证已经不是完全陌生的了,所有废话我就不多说了,直接开始表说如何使用它,不过在此之前呢,先粘贴几个你可能会用得到的网址:
官网:http://www.geetest.com/
官方文档:http://www.geetest.com/install/sections/idx-basic-introduction.html
github:https://github.com/GeeTeam/gt-php-sdk.git
如何使用:
首先要确认前端使用页面,比如登陆页面
52aac8b09d2b919a073e332825c707f22cacc6d41bbb37262a98f745aa00fbf0
6640898916e070f72841fd4dd30601612cacc6d41bbb37262a98f745aa00fbf0
1.在登陆页面访问引入类库:
如果您的网站使用https,则只需要将引入极验库的地方换成https协议即可,不需要更改其它地方。例如更换成以下代码即可:
ede3502cb34fec8ef6c91bdfd8a94b302cacc6d41bbb37262a98f745aa00fbf0
498ae9150282b429802effc2da3036552cacc6d41bbb37262a98f745aa00fbf0
2.初始化前端
下面的代码需要在页面加载后就执行,如果你使用jQuery,可以写在$(function(){});内
$.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); } });
上面代码的意思是说,页面加载后,需要到你指定的URL地址上获得验证码信息,至于上面的URL地址“../web/StartCaptchaServlet.php”里面写了什么内容,这个我们在服务器端代码部署会详细说明。
但是需要说明的是,上面的代码里有一个回调函数叫“handlerPopup”,这个函数是你需要验证码的真正初始化代码:如下:
// 代码详细说明 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 };
至此,前端的所有设置都写完了,官方的说明文档:http://www.geetest.com/install/sections/idx-client-sdk.html
3.服务器端部署(PHP)
在第一步中,我们设置了一个这样的地址“../web/StartCaptchaServlet.php”,在这个地址里边写什么呢:
<?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(); ?>
如何获取 验证ID 和 验证Key :
1.从 验证后台 注册账号
2.添加验证,可以获取一组当前验证的ID/Key
3.将ID和Key分别替换到config.php文件中的captcha_id/private_key变量的值
4.点击提交按钮之后的服务端校验(二次验证)
比如上面说的,用户登录时,你把用户名和密码和验证码信息都提交到服务器了,这个时候,你就可以做校验了:
<?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); } ?>
感谢你的阅读,希望能帮助到大家,谢谢大家对本站的支持!
更多PHP 极验验证码实例讲解相关文章请关注PHP中文网!

PHP仍然流行的原因是其易用性、灵活性和强大的生态系统。1)易用性和简单语法使其成为初学者的首选。2)与web开发紧密结合,处理HTTP请求和数据库交互出色。3)庞大的生态系统提供了丰富的工具和库。4)活跃的社区和开源性质使其适应新需求和技术趋势。

PHP和Python都是高层次的编程语言,广泛应用于Web开发、数据处理和自动化任务。1.PHP常用于构建动态网站和内容管理系统,而Python常用于构建Web框架和数据科学。2.PHP使用echo输出内容,Python使用print。3.两者都支持面向对象编程,但语法和关键字不同。4.PHP支持弱类型转换,Python则更严格。5.PHP性能优化包括使用OPcache和异步编程,Python则使用cProfile和异步编程。

PHP主要是过程式编程,但也支持面向对象编程(OOP);Python支持多种范式,包括OOP、函数式和过程式编程。PHP适合web开发,Python适用于多种应用,如数据分析和机器学习。

PHP起源于1994年,由RasmusLerdorf开发,最初用于跟踪网站访问者,逐渐演变为服务器端脚本语言,广泛应用于网页开发。Python由GuidovanRossum于1980年代末开发,1991年首次发布,强调代码可读性和简洁性,适用于科学计算、数据分析等领域。

PHP适合网页开发和快速原型开发,Python适用于数据科学和机器学习。1.PHP用于动态网页开发,语法简单,适合快速开发。2.Python语法简洁,适用于多领域,库生态系统强大。

PHP在现代化进程中仍然重要,因为它支持大量网站和应用,并通过框架适应开发需求。1.PHP7提升了性能并引入了新功能。2.现代框架如Laravel、Symfony和CodeIgniter简化开发,提高代码质量。3.性能优化和最佳实践进一步提升应用效率。

PHPhassignificantlyimpactedwebdevelopmentandextendsbeyondit.1)ItpowersmajorplatformslikeWordPressandexcelsindatabaseinteractions.2)PHP'sadaptabilityallowsittoscaleforlargeapplicationsusingframeworkslikeLaravel.3)Beyondweb,PHPisusedincommand-linescrip

PHP类型提示提升代码质量和可读性。1)标量类型提示:自PHP7.0起,允许在函数参数中指定基本数据类型,如int、float等。2)返回类型提示:确保函数返回值类型的一致性。3)联合类型提示:自PHP8.0起,允许在函数参数或返回值中指定多个类型。4)可空类型提示:允许包含null值,处理可能返回空值的函数。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

SublimeText3 英文版
推荐:为Win版本,支持代码提示!

Dreamweaver Mac版
视觉化网页开发工具

禅工作室 13.0.1
功能强大的PHP集成开发环境

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

EditPlus 中文破解版
体积小,语法高亮,不支持代码提示功能