如何解决thinkphp验证码不生效问题
时间:2021-12-27 11:32
thinkphp验证码不生效的解决办法:1、在调用验证码之前加上“ob_clean();”语句;2、检查下自己的数据库配置文件并修改正确即可。 本文操作环境:Windows7系统、thinkphp v5.1版、Dell G3电脑。 如何解决thinkphp验证码不生效问题? ThinkPHP5验证码不显示的原因及解决方法 其实很久之前刚学习tp5框架的时候就遇到了这个问题,解决完后一直没再出过问题,今天用以前的框架做新项目时又碰到了这个问题,这里记录一下 问题原因: 1、TP5本就存在这个bug 2、数据库连接不正常(项目连接数据库不正常时验证码也会不显示) 解决方法: 1、TP5自身bug,在TP5官网论坛是给了对应方法解决的、在获取验证码前清除一下缓存就行了 分析: ob_clean这个函数的作用: 2、数据库连接不正常导致,检查下自己的数据库配置文件是否有问题,tp5数据库配置文件dababase.php 推荐学习:《最新的10个thinkphp视频教程》 以上就是如何解决thinkphp验证码不生效问题的详细内容,更多请关注gxlsystem.com其它相关文章!/*
* 获取验证码
* */
public function getVerify()
{
$config = [
'fontSize' => 28,
'length' => 4,
'useCurve' => false,
];
ob_clean(); //每次获取验证码前都清除下缓存
$captcha = new Captcha($config);
return $captcha->entry();
}
用来丢弃输出缓冲区中的内容,如果你的网站有许多生成的图片类文件,那么想要访问正确,就要经常清除缓冲区。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,
];