如何解决thinkphp5中验证码常见问题

如何解决thinkphp5中验证码常见问题,第1张

在项目目录下面生成captcha扩展 (需要安装composer来安装)

composer require topthink/think-captcha

2 安装完成之后会呈现如上的目录。captcha扩展安装完成之后,就可以进行下一步 *** 作

配置comfig.php文件:在comfig.php下面加个扩展

//验证

'captcha'=>[

//字符集合

'codeset'=>'23456780qwertyuioplkjhgfdsazxcvbnmQWERTYUIOPLKJHGFDSAZXCVBNM',

//字体大小

'fontSize' =>18,

//是否花混淆曲线

'useCurve' =>true,

//图片高度

'imageH' =>40,

//图片宽度

'imageW' =>130,

//位数

'length' =>4,

//验证成功后是否重置

'reset' =>true,

],

3.刷新验证码功能  src路径在这里可以用框架自带的也可以直接访问img方法

<img id="captcha_img" src="{:captcha_src()}" alt="验证码" onclick="refreshVerify()"><a

href="javascript:refreshVerify()">点击刷新</a>

在js《script》标签部分加上刷新事件

function refreshVerify()

{

var ts = Date.parse(new Date() )/1000

console.log(ts)

$('#captcha_img').attr('src','/captcha?id='+ts)

}

4.在控制器里用TP验证自带的方法

在你的登录的控制器里面加入

4.1在头部引入 use think\captcha\Captcha

//该方法引入img图像  宽高可以再img用css直接控制!

public function img() {

$captcha = new Captcha()

return $captcha->entry()

}

// 检测输入的验证码是否正确,$code为用户输入的验证码字符串,$id多个验证码标识

function check_verify($code, $id = ''){

$captcha = new Captcha()

return $captcha->check($code, $id)

}这个方法下面的验证要用到

在你的form验证码值发送的方法里加入 post提交 GET提交就把post改成get  表单验证码name是code

$request=request()

if ($request->isPost()){

if($request->post('code')){

if($this->check_verify($request->post('code'))){

$message= '验证成功'

}else{

$message= '验证错误'

}

}else{

$message= '没有输入验证码'

}

}

照以上做没有任何问题

利用TP5框架生成验证码需要安装captcha扩展,可以利用composer来安装:

 composer require topthink/think-captcha

安装完成之后会呈现如上的目录。captcha扩展安装完成之后,就可以进行下一步 *** 作

配置comfig.php文件:

在html文件需要验证码的地方输入{:captcha_img()}验证就生成完毕了。

效果预览

2.如何刷新验证码

验证码有时候太模糊,用户希望切换下一张验证码,该如何 *** 作呢?

验证的扩展和配置如上,需要修改html部分。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11473575.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存