php 剪裁背景图,滑动图片,滑动验证

本文介绍了如何在ThinkPHP6框架中使用PHP的GD2库实现图片滑动验证功能,包括图片剪裁、滑动、验证的详细步骤。通过XSVerification类,生成带有随机小图的背景图片,然后进行图片切割、重组,并在客户端进行滑动验证。代码中包含了初始化、图片处理、验证数据检查等关键方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

php 剪裁背景图,滑动图片,滑动验证

tp6使用方法:

<?php
declare (strict_types = 1);

namespace app\admin\controller;

use sdk\XSVerification;

class Index
{
    public function index()
    {
        return '您好!这是一个[admin]示例应用';
    }


    public function getVaile(){
        $XSVerification = new XSVerification();  // 加载类 XSVerification.class.php
        $data = $XSVerification->getOkPng();
        $temp = array_chunk($data['data'],20);
        session("XSVer_VAL_SUM",1);

        $arr = [
            'status' => 0,
            'left_pic'=>$temp[0],
            'right_pic'=>$temp[1],
            'pg_bg'=>$data['bg_pic'],
            'ico_pic'=>$data['ico_pic'],
            'y_point'=>$data['y_point']
        ];

        echo json_encode($arr);

    }

    public function vaile(\think\Request $request){

        static $v_num=1;
        $ret =  XSVerification::checkData($request->request('post.point'),session('XSVer'));
        $v_num +=  session("XSVer_VAL_SUM");
        if( $v_num > 6 ) {
            session("XSVer_SUM",null);
            exit(json_encode(array('state'=>4603,'data'=>'验证码失效')));
        } else {
            session("XSVer_VAL_SUM",$v_num);
        }
        if( $ret['state'] == 0 ) {
            session("XSVer_VAL_SUM",0x111);
            exit(json_encode(array('state'=>0,'data'=>session('XSVer'))));
        } else {
            session("XSVer_VAL_SUM",null);
            exit(json_encode(array('state'=>603,'data'=>'错误'.$v_num)));
        }
    }



}

剪裁图片,滑动验证文件:

注意:图片存储目录 --  自己对应下

XSVerification.php

<?php

/**
 * @auther Liu xian song
 * @email  326427540@qq.com
 * @desc   GD2 图片滑动验证码
 */

class XSVerification{

    private $tailoring_big_save_path;    //拼图保存路径
    private $tailoring_small_save_path;  //小截图保存路径
    private $session_name = 'XSVer';    //Session Name
    private $tailoring_w;       //截图宽
    private $tailoring_h;      //截图高
    private $PicSavePath;      //全部存储在目录下面
    private $ResourcesPath;    //资源图片路径
    private $smallPicName;  //小图片名称
    private $bigPicName;    //大图图片名称
    private $srcPic;     //参照图片
    private $picSuffix = '.png'; //图片后缀
    private $location_x; //随机X位置
    private $location_y; //随机Y位置
    private $pic_info;
    /**
     * @name 初始化相关数据
     */
    public function init()
    {
        $this->tailoring_w = mt_rand(30,40);
        $this->tailoring_h = m
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值