本人线上用的是urlos 是个docker管理器工具。
本人线下测试是用的宝塔。是个环境集成管理工具。
程序开发者把程序发过来后,在本地测试没有问题,然后线上测试刚开始是伪静态问题,后来解决了伪静态问题,但是后台登陆的验证码无法显示。
因为提示是无法找到captcha.html 刚开始推测是伪静态问题或者是php版本问题,跟开发者确认使用的伪静态没有问题,php环境是5.4后,陷入了更郁闷的情况。
后来找urlos的作者洞哥咨询,洞哥测试了用dz程序在我的使用的环境下面测试,发现是正常的。
然后我决定去考虑代码方面的问题,准备再检查代码方面的问题。
然后就去网上搜索thinkphp后台登陆无法显示验证码,然后发现了说是thinkphp本身的一个缺陷,然后通过查看相关文章,然后核对自己的程序是否有相关的问题,然后发现有相关漏洞,然后通过修复漏洞,解决了这个问题。
方法如下:
thinkPHP5 后台验证码不显示
解决:
找到 vendor/topthink/think-captcha/src/CaptchaController.php 文件,在 index 这行下面那行添加 ob_clean();如下图
class CaptchaController { public function index($id = "") { ob_clean(); $captcha = new Captcha((array)Config::get('captcha')); return $captcha->entry($id); } }
然后这个问题就解决了。