如何解决thinkphp验证码不生效问题
2022-11-24 11:02:51
181
{{single.collect_count}}

thinkphp验证码不生效的解决办法:1、在调用验证码之前加上“ob_clean();”语句;2、检查下自己的数据库配置文件并修改正确即可。

php入门到就业线上直播课:进入学习
Apipost = Postman + Swagger + Mock + Jmeter 超好用的API调试工具:点击使用

本文操作环境:Windows7系统、thinkphp v5.1版、Dell G3电脑。

如何解决thinkphp验证码不生效问题?

ThinkPHP5验证码不显示的原因及解决方法

其实很久之前刚学习tp5框架的时候就遇到了这个问题,解决完后一直没再出过问题,今天用以前的框架做新项目时又碰到了这个问题,这里记录一下

问题原因:

1、TP5本就存在这个bug

2、数据库连接不正常(项目连接数据库不正常时验证码也会不显示)

解决方法:

1、TP5自身bug,在TP5官网论坛是给了对应方法解决的、在获取验证码前清除一下缓存就行了

/* * 获取验证码 * */public function getVerify(){$config = ['fontSize' => 28,'length' => 4,'useCurve' => false,];ob_clean(); //每次获取验证码前都清除下缓存$captcha = new Captcha($config);return $captcha->entry();}
登录后复制

分析:

ob_clean这个函数的作用:
用来丢弃输出缓冲区中的内容,如果你的网站有许多生成的图片类文件,那么想要访问正确,就要经常清除缓冲区。

2、数据库连接不正常导致,检查下自己的数据库配置文件是否有问题,tp5数据库配置文件dababase.php

return [// 数据库类型'type'=> 'mysql',// 服务器地址'hostname'=> '',// 数据库名'database'=> '',// 用户名'username'=> root,// 密码'password'=> '',// 端口'hostport'=> '3306',// 连接dsn'dsn' => '',// 数据库连接参数'params'=> [],// 数据库编码默认采用utf8'charset' => 'utf8',// 数据库表前缀'prefix'=> 'ww_',// 数据库调试模式'debug' => true,// 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器)'deploy'=> 0,// 数据库读写是否分离 主从式有效'rw_separate' => false,// 读写分离后 主服务器数量'master_num'=> 1,// 指定从服务器序号'slave_no'=> '',// 是否严格检查字段是否存在'fields_strict' => true,// 数据集返回类型'resultset_type'=> 'array',// 自动写入时间戳字段'auto_timestamp'=> true,// 时间字段取出后的默认时间格式'datetime_format' => 'Y-m-d H:i:s',// 是否需要进行SQL性能分析'sql_explain' => false,];
登录后复制

推荐学习:《最新的10个thinkphp视频教程

以上就是如何解决thinkphp验证码不生效问题的详细内容,更多请关注php中文网其它相关文章!

回帖
全部回帖({{commentCount}})
{{item.user.nickname}} {{item.user.group_title}} {{item.friend_time}}
{{item.content}}
{{item.comment_content_show ? '取消' : '回复'}} 删除
回帖
{{reply.user.nickname}} {{reply.user.group_title}} {{reply.friend_time}}
{{reply.content}}
{{reply.comment_content_show ? '取消' : '回复'}} 删除
回帖
收起
没有更多啦~
{{commentLoading ? '加载中...' : '查看更多评论'}}