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