当前位置: 首页 > news >正文

用PHP实现极验验证功能

极验验证是一种防机器人的验证机制,可以通过图像识别等方式来判断用户是否为真实用户。在实现极验验证功能时,您需要进行以下步骤:

1 注册极验账号: 首先,您需要在极验官网注册账号并创建一个应用,获取相应的验证密钥。

2 引入极验库: 极验官网会提供 JavaScript 和 PHP 的 SDK,您需要将其引入到您的网站项目中。

3 前端实现: 在前端页面中,引入极验的 JavaScript SDK,创建验证实例并将验证结果发送到后端。

4 后端验证: 在后端,使用 PHP 处理从前端发送过来的验证数据,与极验服务器进行通信,验证验证结果的有效性。

应用场景

现在很多网站,比如淘宝,京东等都改用使用极验拖动验证码实现登录,这种方式比传统的验证码方式有更好的体验,减少用户输入的错误,也同样能起到防盗刷的功能。现在很多极验都是第三方的,也很多都是收费的。

今天在这里给大家分享自己用原生php实现的一个极验的代码。用原生php的好处就是以后你要嵌套到什么框架,可以直接用核心代码,改一改就好了。

极验拖动动画图

图片

下面是一个简单的示例代码,演示了如何在 PHP 中实现极验验证功能。

请注意,这只是一个简化的示例,实际应用中需要根据官方文档和您的实际需求进行详细配置和处理。

1 注册极验账号并获取密钥: 在极验官网注册账号并创建一个应用,获取验证 ID(gt)和验证密钥(key)。

2 引入极验库: 下载并引入极验的 JavaScript SDK。在您的 HTML 文件中添加如下代码:

 
<!-- 引入极验验证的 JavaScript SDK -->
<script src="https://cdn.geetest.com/极验验证版本号/gt.js"></script>

3 前端实现: 在前端页面中,创建验证实例并将验证结果发送到后端。

 
<!-- 极验验证容器 -->
<div id="captcha"></div><!-- 极验验证脚本 -->
<script>var captchaContainer = document.getElementById('captcha');// 初始化极验验证var captcha = new window.Geetest({gt: 'YOUR_GT_KEY', // 替换为您的验证 IDcontainer: captchaContainer});// 执行验证captcha.onReady(function () {captcha.verify();});// 处理验证结果captcha.onSuccess(function (token) {// 将 token 发送到后端进行验证var xhr = new XMLHttpRequest();xhr.open('POST', 'verify.php', true);xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');xhr.send('token=' + token);});
</script>

4 后端验证: 在服务器端创建一个名为 verify.php 的文件,处理从前端发送过来的验证数据并与极验服务器进行通信。

 
<?php
$geetest_id = 'YOUR_GT_KEY'; // 替换为您的验证 ID
$geetest_key = 'YOUR_PRIVATE_KEY'; // 替换为您的验证密钥$token = $_POST['token'];// 发送 POST 请求到极验服务器验证 token
$response = file_get_contents("http://api.geetest.com/validate.php?gt={$geetest_id}&challenge={$token}&userresponse={$token}&key={$geetest_key}");$result = json_decode($response, true);if ($result['seccode'] === md5($token)) {echo '验证成功';
} else {echo '验证失败';
}
?>

请注意,上述示例只是一个简化的演示,实际中还需要处理错误情况、进行日志记录等。确保您查阅极验官方文档以获取更详细的使用指南和最佳实践。

相关文章:

用PHP实现极验验证功能

极验验证是一种防机器人的验证机制&#xff0c;可以通过图像识别等方式来判断用户是否为真实用户。在实现极验验证功能时&#xff0c;您需要进行以下步骤&#xff1a; 1 注册极验账号&#xff1a; 首先&#xff0c;您需要在极验官网注册账号并创建一个应用&#xff0c;获取相应…...

【数据结构初阶】三、 线性表里的链表(无头+单向+非循环链表)

相关代码gitee自取&#xff1a; C语言学习日记: 加油努力 (gitee.com) 接上期&#xff1a; 【数据结构初阶】二、 线性表里的顺序表_高高的胖子的博客-CSDN博客 引言 通过上期对顺序表的介绍和使用 我们可以知道顺序表有以下优点和缺点&#xff1a; 顺序表优点 尾插 和 尾…...

Mybatis 映射器与XML配置职责分离

之前我们介绍了使用XML配置方式完成对数据的增删改查操作&#xff0c;使用此方式在实际调用时需要使用【命名空间.标签编号】的方式执行&#xff0c;此方式在编写SQL语句时很方便&#xff0c;而在执行SQL语句环节就显得不太优雅&#xff1b;另外我们也介绍了使用映射器完成对数…...

微服务引擎

微服务引擎&#xff0c;MSE_微服务引擎 MSE-阿里云帮助中心 一、什么是微服务引擎MSE 微服务引擎MSE&#xff08;Microservices Engine&#xff09;是一个面向业界主流开源微服务生态的一站式微服务平台&#xff0c;提供注册配置中心&#xff08;原生支持Nacos/ZooKeeper/Eur…...

前端JavaScript入门到精通,javascript核心进阶ES6语法、API、js高级等基础知识和实战 —— JS基础(三)

允许一切发生&#xff0c;生活不过是见招拆招。 思维导图 一、循环-for 1.1 for 循环-基本使用 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEe…...

搭建部署属于自己的基于gpt3.5的大语言模型(基于flask+html+css+js+mysql实现)

一、简介 本项目是一个基于GPT-3.5模型的聊天机器人网站&#xff0c;旨在为用户提供一个简便、直接的方式来体验和利用GPT-3.5模型的强大功能。项目以Flask为基础&#xff0c;构建了一个完整的Web应用程序&#xff0c;其中包含了多个前端页面和后端API接口&#xff0c;能够处理…...

AI创作专家,免费的AI创作专家工具

AI创作专家是一种崭新的工具&#xff0c;它们利用先进的人工智能技术&#xff0c;帮助创作者和写手更轻松地应对创作挑战。这些工具不仅可以生成文字&#xff0c;还可以提供灵感、帮助构思和组织思路&#xff0c;使创作过程更加高效。 147GPT批量文章生成工具​www.147seo.com/…...

Nginx之gzip模块解读

目录 gzip基本介绍 gzip工作原理 Nginx中的gzip 不建议开启Nginx中的gzip场景 gzip基本介绍 gzip是GNUzip的缩写&#xff0c;最早用于UNIX系统的文件压缩。HTTP协议上的gzip编码是一种用来改进web应用程序性能的技术&#xff0c;web服务器和客户端&#xff08;浏览器&…...

微软在Windows 11推出Copilot,将DALL-E 3集成在Bing!

美东时间9月21日&#xff0c;微软在美国纽约曼哈顿举办产品发布会&#xff0c;生成式AI成为重要主题之一。 微软表示&#xff0c;Copilot将于9月26日在Windows 11中推出&#xff1b;Microsoft 365 Copilot 将于11 月1日向企业客户全面推出&#xff1b;将OpenAI最新的文本生成图…...

SLAM从入门到精通(消息传递)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 前面我们只是编写了一个publisher节点&#xff0c;以及一个subscribe节点。有了这两个节点&#xff0c;它们之间就可以通信了。在实际生产中&#…...

思科路由器:NAT的基础配置

一直以来&#xff0c;对于华为、H3C、锐捷交换机的命令配置&#xff0c;不断的有朋友留言&#xff0c;三家交换机的配置命令容易弄混&#xff0c;经常在实际项目配置中出错&#xff0c;因此&#xff0c;找几个基础的示例来练练。 R1配置 Router>en Router>enable Rout…...

动态代理。

无侵入式的给代码增加额外的功能 代理的作用&#xff1a;对象如果干的事情太繁琐&#xff0c;就可以通过代理来转移部分职责&#xff1b;也就是相当于把对象的的方法拆开一些步骤分给代理做&#xff0c;对象做关键的就行了&#xff1b;并且代理做的这些繁琐的事情的名字也要和…...

Learn Prompt-GPT-4:能力

GPT-4能力大赏​ 常识知识推理​ 一个猎人向南走了一英里&#xff0c;向东走了一英里&#xff0c;向北走了一英里&#xff0c;最后回到了起点。他看到了一只熊&#xff0c;于是开枪打了它。这只熊是什么颜色的&#xff1f; 答案是白色&#xff0c;因为这种情况只可能发生在北…...

iOS——ViewController的生命周期

ViewController ViewController的生命周期是指在应用程序运行过程中&#xff0c;ViewController实例从创建到销毁的整个过程。在这个过程中&#xff0c;ViewController会经历一系列的生命周期方法&#xff0c;这些方法可以帮助开发者管理ViewController及其相关的视图和逻辑。…...

SkyWalking内置参数与方法

参数 全局指标 指标指标名称all_p99所有服务响应时间的 p99 值all_p95所有服务响应时间的 p95 值all_p90所有服务响应时间的 p90 值all_p75所有服务响应时间的 p75 值all_p70所有服务响应时间的 p70 值all_heatmap所有服务响应时间的热点图 服务指标 指标指标名称service_r…...

【C++面向对象侯捷】12.虚函数与多态 | 13.委托相关设计【设计模式 经典做法,类与类之间关联起来,太妙了,不断的想,不断的写代码】

文章目录 12.虚函数与多态举例&#xff1a;委托 继承【观察者模式】13.委托相关设计Composite 组合模式Prototype 原型模式 12.虚函数与多态 纯虚函数 一定要 子类重新定义的 继承和复合 关系下的构造和析构 举例&#xff1a;委托 继承【观察者模式】 13.委托相关设计 问题…...

基于若依ruoyi-nbcio增加flowable流程待办消息的提醒,并提供右上角的红字数字提醒(五)

1、下面提供给前端待办提醒消息的接口SysNoticeController&#xff0c;增加如下&#xff1a; /*** 补充用户数据&#xff0c;并返回系统消息* return*/Log(title "系统消息")GetMapping("/listByUser")public R<Map<String, Object>> listByU…...

hive数据初始化

mysql版本&#xff1a;3.1.3 hive版本&#xff1a; 8.0.31 hive连接配置 <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://node88:3306/hive?createDatabaseIfNotExisttrue</value> </pr…...

React+Node——next.js 构建前后端项目

一、安装全局依赖 npm i -g create-next-app二、创建next项目 create-next-app react-next-demo //或 create-next-app react-next-demo --typescript三、加载mysql依赖 npm i -S mysql2四、运行项目 npm run dev五、创建db文件目录&#xff0c;目录下创建index.ts import…...

CRM系统主要包括哪些功能?

CRM系统应该要包括的功能总结为3大方向—— 核心必须要具备的功能常见尽量要有的功能可选有了自然更好的功能 以我们公司用的简道云CRM系统模板为例&#xff1a;https://www.jiandaoyun.com 01 核心必须要具备的功能 核心功能决定了系统是否能够被纳入CRM类别&#xff0c;这些…...

Vue2 第一节_Vue2上手_插值表达式{{}}_访问数据和修改数据_Vue开发者工具

文章目录 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染2. 插值表达式{{}}3. 访问数据和修改数据4. vue响应式5. Vue开发者工具--方便调试 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染 准备容器引包创建Vue实例 new Vue()指定配置项 ->渲染数据 准备一个容器,例如: …...

TRS收益互换:跨境资本流动的金融创新工具与系统化解决方案

一、TRS收益互换的本质与业务逻辑 &#xff08;一&#xff09;概念解析 TRS&#xff08;Total Return Swap&#xff09;收益互换是一种金融衍生工具&#xff0c;指交易双方约定在未来一定期限内&#xff0c;基于特定资产或指数的表现进行现金流交换的协议。其核心特征包括&am…...

基于Docker Compose部署Java微服务项目

一. 创建根项目 根项目&#xff08;父项目&#xff09;主要用于依赖管理 一些需要注意的点&#xff1a; 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件&#xff0c;否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...

什么是EULA和DPA

文章目录 EULA&#xff08;End User License Agreement&#xff09;DPA&#xff08;Data Protection Agreement&#xff09;一、定义与背景二、核心内容三、法律效力与责任四、实际应用与意义 EULA&#xff08;End User License Agreement&#xff09; 定义&#xff1a; EULA即…...

深入解析C++中的extern关键字:跨文件共享变量与函数的终极指南

&#x1f680; C extern 关键字深度解析&#xff1a;跨文件编程的终极指南 &#x1f4c5; 更新时间&#xff1a;2025年6月5日 &#x1f3f7;️ 标签&#xff1a;C | extern关键字 | 多文件编程 | 链接与声明 | 现代C 文章目录 前言&#x1f525;一、extern 是什么&#xff1f;&…...

uniapp中使用aixos 报错

问题&#xff1a; 在uniapp中使用aixos&#xff0c;运行后报如下错误&#xff1a; AxiosError: There is no suitable adapter to dispatch the request since : - adapter xhr is not supported by the environment - adapter http is not available in the build 解决方案&…...

在Ubuntu24上采用Wine打开SourceInsight

1. 安装wine sudo apt install wine 2. 安装32位库支持,SourceInsight是32位程序 sudo dpkg --add-architecture i386 sudo apt update sudo apt install wine32:i386 3. 验证安装 wine --version 4. 安装必要的字体和库(解决显示问题) sudo apt install fonts-wqy…...

JVM虚拟机:内存结构、垃圾回收、性能优化

1、JVM虚拟机的简介 Java 虚拟机(Java Virtual Machine 简称:JVM)是运行所有 Java 程序的抽象计算机,是 Java 语言的运行环境,实现了 Java 程序的跨平台特性。JVM 屏蔽了与具体操作系统平台相关的信息,使得 Java 程序只需生成在 JVM 上运行的目标代码(字节码),就可以…...

招商蛇口 | 执笔CID,启幕低密生活新境

作为中国城市生长的力量&#xff0c;招商蛇口以“美好生活承载者”为使命&#xff0c;深耕全球111座城市&#xff0c;以央企担当匠造时代理想人居。从深圳湾的开拓基因到西安高新CID的战略落子&#xff0c;招商蛇口始终与城市发展同频共振&#xff0c;以建筑诠释对土地与生活的…...

Caliper 负载(Workload)详细解析

Caliper 负载(Workload)详细解析 负载(Workload)是 Caliper 性能测试的核心部分,它定义了测试期间要执行的具体合约调用行为和交易模式。下面我将全面深入地讲解负载的各个方面。 一、负载模块基本结构 一个典型的负载模块(如 workload.js)包含以下基本结构: use strict;/…...