返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >php滑动验证码的实现原理是什么
  • 867
分享到

php滑动验证码的实现原理是什么

2023-07-05 15:07:41 867人浏览 独家记忆
摘要

今天小编给大家分享一下PHP滑动验证码的实现原理是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、滑动验证码的定义与应

今天小编给大家分享一下PHP滑动验证码的实现原理是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

一、滑动验证码的定义与应用

滑动验证码是一种人机交互的验证码形式,它的基本原理是在界面上展示一张包含某些图片或图形的滑块,用户需要按住滑块进行拖动,直到把滑块拼接到验证码图形相应位置,以此进行验证。该类型的验证码多用于广告、登录、注册和评论等需要用户身份识别的场景。

二、php滑动验证码的实现原理

php滑动验证码的实现主要分为两个部分:前端展示与后端验证。其中前端展示主要通过htmlCSSjavascript等前端技术实现,后端验证则是基于php语言,并利用session机制实现。

  1. 前端代码实现

(1)HTML代码

首先,需要编写HTML代码,实现验证码的基本结构。这里以一个简单的实例为例:

<div class="slide-verify">    <div class="verify-img-box">        <img src="verify.php" class="verify-img" id="verify-img">        <div class="verify-btn-box">            <span class="verify-btn" id="verify-btn"></span>        </div>    </div>    <div class="verify-text">拖动滑块完成验证</div></div>

以上HTML代码中,div.slide-verify是验证码的外层容器,div.verify-img-box是验证码图片的容器,img.verify-img是验证码图片,div.verify-btn-box是滑块的容器,span.verify-btn是滑块。div.verify-text为提示文字。

在HTML中需要引入以下文件:

<script src="https://libs.baidu.com/Jquery/1.9.0/jquery.js"></script><script src="jquery.ui.touch-punch.js"></script><script src="verify.js"></script><link rel="stylesheet" href="verify.css">

(2)CSS代码

CSS代码主要是实现验证码的样式与布局,这里只给出部分代码:

.slide-verify {    position: relative;    width: 300px;    height: 100px;}.verify-img-box {    position: absolute;    top: 0; left: 0; right: 0; bottom: 0;    margin: auto;    width: 300px;    height: 60px;    border: 1px solid #DDD;    background-color: #fafafa;    overflow: hidden;}.verify-img {    display: inline-block;    width: 300px;    height: 60px;}.verify-btn-box {    position: absolute;    top: 0; left: 0; right: 0; bottom: 0;    margin: auto;    width: 38px;    height: 38px;    background-color: #fff;    border: 1px solid #ddd;    border-radius: 50%;    box-shadow: 0 0 3px #ddd;    cursor: pointer;}.verify-btn {    display: block;    width: 36px;    height: 36px;    background-color: #34B5E5;    border-radius: 50%;}.verify-text {    position: absolute;    bottom: 0;    left: 50%;    transfORM: translateX(-50%);    margin-bottom: 5px;    font-size: 12px;}

以上CSS代码中,主要是实现了验证码的基本样式、滑块的样式、背景颜色、阴影等。

(3)JavaScript代码

JavaScript实现用户交互操作和数据提交,主要代码如下:

$(function() {    var startX = 0,         distanceX = 0,         sliderLeft = 0,         sliderWidth = $('#verify-btn').width(),        complete = false;    $('#verify-btn').draggable({        containment: '.verify-img-box',//滑块的移动范围        axis: 'x',//只能在x轴方向上滑动        drag: function(event, ui) {//滑块拖动过程            distanceX = ui.position.left - startX;            ui.position.left = sliderLeft + distanceX;            //防止滑块越界            if (ui.position.left <= 0) {                ui.position.left = 0;            } else if (ui.position.left >= sliderWidth) {                ui.position.left = sliderWidth;            }        },        stop: function(event, ui) {//滑块停止拖动            startX = ui.position.left - 0;            sliderLeft = ui.position.left - 0;            //完成验证            if (sliderLeft >= (sliderWidth - 2)) {//根据自己的需求设定,这里是滑动距离要大于等于(滑块宽度-2)                complete = true;                //提交验证                $.ajax({                    type: 'POST',                    url: 'verify.php',                    data: {                        verify: 'true'                    },                    success: function(msg) {                        alert(msg);//验证通过,执行相应操作                    }                });            } else {//重置滑块位置                complete = false;                $('#verify-btn').animate({left: 0}, 200);            }        }    });});

以上JavaScript代码中,主要是使用jQuery UI库的拖拽功能实现滑块的拖动操作,并通过ajax提交验证结果。

  1. 后端代码实现

后端主要代码如下所示:

session_start();define('V_CODE', '1');//验证码标识符if (isset($_POST['verify']) && $_POST['verify'] === 'true') {//验证操作    //判断验证码是否正确    if ($_SESSION[V_CODE] && intval($_SESSION[V_CODE]) === 1) {        echo '验证通过';    } else {        echo '验证失败';    }    //验证完毕,清楚验证码    unset($_SESSION[V_CODE]);    exit;//结束}header('Content-type: image/jpeg');$im = imagecreate(58, 30);$bg_color = imagecolorallocate($im, mt_rand(200, 255), mt_rand(200, 255), mt_rand(200, 255));//背景色$fc_color = imagecolorallocate($im, mt_rand(50, 200), mt_rand(50, 200), mt_rand(50, 200));//字体色imagefill($im, 0, 0, $bg_color);$confash_code = rand(1, 9);//验证码字符$_SESSION[V_CODE] = $confash_code;imagestring($im, 5, 12, 6, $confash_code, $fc_color);for ($i = 0; $i < 150; $i++) {//干扰像素    imagesetpixel($im, mt_rand(0, 58), mt_rand(0, 30), $fc_color);}for ($i = 0; $i < 3; $i++) {//干扰线    imageline($im, mt_rand(0, 58), mt_rand(0, 30), mt_rand(0, 58), mt_rand(0, 30), $fc_color);}imagejpeg($im);imagedestroy($im);

以上代码中,首先通过session机制记录验证码的标识符,然后在验证码代码中,生成一个随机的验证码字符,并将其存储到$_SESSION数组中。在滑块验证代码中,通过ajax方式将验证结果提交到后台进行验证。如果验证通过,则执行相应操作,否则提示验证失败。

以上就是“php滑动验证码的实现原理是什么”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注编程网PHP编程频道。

--结束END--

本文标题: php滑动验证码的实现原理是什么

本文链接: https://lsjlt.com/news/352876.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • php滑动验证码的实现原理是什么
    今天小编给大家分享一下php滑动验证码的实现原理是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、滑动验证码的定义与应...
    99+
    2023-07-05
  • 聊聊php滑动验证码的实现原理
    随着互联网的迅速发展,验证码成为了互联网安全保障的重要手段。其中,滑动验证码由于其简单易懂、操作方便、安全性高等特点,在实际应用中已经得到了广泛的应用。本文将介绍php滑动验证码的实现原理。一、滑动验证码的定义与应用滑动验证码是一种人机交互...
    99+
    2023-05-14
    php
  • Java如何实现滑动验证码
    小编给大家分享一下Java如何实现滑动验证码,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!功能:java实现滑动验证码项目是采用springboot,maven开发工具:采用idea1.效果演示2.后端代码控制层@Cont...
    99+
    2023-06-29
  • .NET如何实现滑动验证码
    本篇内容介绍了“.NET如何实现滑动验证码”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!CaptchaData.csCaptchaData....
    99+
    2023-07-04
  • Java实现滑动验证码的示例代码
    目录1.效果演示2.后端代码控制层工具类3.前端页面功能:java实现滑动验证码 项目是采用springboot,maven 开发工具:采用idea 1.效果演示 2.后端代码...
    99+
    2024-04-02
  • C#滑动验证码拼图验证功能实现(SlideCaptcha)
    目录使用背景:实现分析:后端代码:准备:使用:前端代码:结语:使用背景: 关于滑动验证码的使用场所还是非常多的,如:调取短信接口之前,和 注册请求之前 或者 频繁会调用的接口都需要加...
    99+
    2024-04-02
  • 如何使用php+js实现极验,拖动滑块验证码验证表单
    这篇文章给大家分享的是有关如何使用php+js实现极验,拖动滑块验证码验证表单的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。   代码实现   html文件   <!...
    99+
    2024-04-02
  • Flutter实现滑动块验证码功能
    Flutter实现滑动块验证码功能,供大家参考,具体内容如下 本文实现的是一个用于登录时,向右滑动滑动块到最右边完成验证的一个功能。当滑动未到最右边时,滑动块回弹回左边起始位置。 ...
    99+
    2024-04-02
  • MySQL密码验证的原理是什么
    这篇文章给大家介绍MySQL密码验证的原理是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。 1.服务器端会随机生成一个random string发送给客户端; ...
    99+
    2024-04-02
  • Flutter怎么实现滑动块验证码功能
    这篇文章主要介绍“Flutter怎么实现滑动块验证码功能”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Flutter怎么实现滑动块验证码功能”文章能帮助大家解决问题。本文实现的是一个用于登录时,向右...
    99+
    2023-06-29
  • Java实现滑动验证码(前端部分)
    目录实现思路实现代码实现结果实现思路 1、请求后端获得背景图、滑块、x、y、误差范围bound 2、将滑块设置到对应的位置:top = y 3、添加鼠标滑动事件 实现代码 后端请求(...
    99+
    2022-11-13
    Java滑动验证码 Java 验证码
  • vue怎么实现滑动验证条
    这篇文章主要介绍“vue怎么实现滑动验证条”,在日常操作中,相信很多人在vue怎么实现滑动验证条问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”vue怎么实现滑动验证条”的疑惑有所帮助!接下来,请跟着小编一起来...
    99+
    2023-06-29
  • JS怎么实现滑块验证码
    本篇内容介绍了“JS怎么实现滑块验证码”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!style*{   &nb...
    99+
    2023-07-05
  • 怎么使用Vue插件实现滑动验证码
    这篇“怎么使用Vue插件实现滑动验证码”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“怎么使用Vue插件实现滑动验证码”文章吧...
    99+
    2023-07-04
  • PHP实现短信验证码功能的原理与实现
    随着科技的不断进步,短信验证码的功能越来越受到各个领域的欢迎。在互联网领域中,短信验证码已经成为了一个不可或缺的安全验证方式。本文主要介绍PHP实现短信验证码功能的原理和实现方式。一,短信验证码的原理短信验证码是利用手机短信发送的一种随机验...
    99+
    2023-05-22
    PHP 实现 短信验证码
  • 怎么用JavaScript实现滑块验证码
    本篇内容主要讲解“怎么用JavaScript实现滑块验证码”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用JavaScript实现滑块验证码”吧!效果:鼠标在底部滑块上按下按住不松拖动可以移...
    99+
    2023-06-25
  • vue+drf+第三方滑动验证码接入的实现
    目录1、背景2、验证流程3、创建验证4、前端代码4.1 添加核心js文件4.2 添加配置4.3 组件修改 5、后端代码5.1 添加配置5.2 接收验证并返回 5.3 添加url路由6...
    99+
    2024-04-02
  • Android自定View实现滑动验证效果的代码
    效果图 自定义属性代码 <?xml version="1.0" encoding="utf-8"?> <resources> &...
    99+
    2024-04-02
  • js插件如何实现图片滑动验证码
    这篇文章将为大家详细讲解有关js插件如何实现图片滑动验证码,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。jquery.lgymove.js  (function...
    99+
    2024-04-02
  • 基于C#实现图片滑动验证码的示例代码
    目录图片准备合成目标实现1.创建项目2.Nuget添加ImageSharp3.vscode打开4.引入图片5.生成out_bg.jpg6.生成out_slider.png全部代码最后...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作