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

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

创新互联服务项目包括桃山网站建设、桃山网站制作、桃山网页制作以及桃山网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,桃山网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到桃山省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!

本文操作环境: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验证码不生效问题
转载来源:http://azwzsj.com/article/cjsipp.html