如何解决thinkphp5中验证码常见问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何解决thinkphp5中验证码常见问题相关的知识,希望对你有一定的参考价值。
参考技术A 可以在腾讯智慧安全页面申请使用腾讯御点
在项目目录下面生成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= '没有输入验证码';
照以上做没有任何问题
然后使用这个软件上面的修复漏洞功能
直接对电脑的漏洞进行检测和修复就可以了
以上是关于如何解决thinkphp5中验证码常见问题的主要内容,如果未能解决你的问题,请参考以下文章
阿里云 windows 2008 使用Thinkphp5 captcha验证码不显示问题