单刀直入,这次不多叨叨。问题:TP5.1本地部署的项目正常,部署到服务器上之后,一访问,后台登录界面的验证码不显示了,提示captcha。如图:
然后查手册,当然手册上是找不到答案的,只能是百度,或者找博客。
(这次我自己记录下来,下次就不用找了。哈哈哈哈)
第一种方法: http://www.thinkphp.cn/中提出的解决办法。
1、\vendor\topthink\think-captcha\src 下的 Captcha.php
2、找到 entry($id = ‘’) 方法
3、在此方法return 上一行中加入: ob_clean(); 即可
结果:有评论说有用的,更多是说没用的,对我的问题是没起作用,而且这是tp框架基层文件(这么描述不知道对不对),我认为轻易是不加改动的。
第二种办法:找到验证码控制器,用ob_clean();清空缓存
结果,对我的问题还是没起作用。当然也有评论说起作用的。
第三种方法:因为我是后台登录页面中验证码加载不出来,我的登录方法在Admin控制器中(Admin/login),
然后在后台Admin的控制器里,我也有写验证码的方法。所以想到是否能在这里的方法里面用ob_clean()清空缓存。如图:
结果:解决了问题。
我不清楚大家的项目创建的控制器以及方法是否相同,但是这次解决问题的方法应该可以借鉴。如果您也遇到该问题,您可以每个方法都试一下。能解决自己实际问题的方法就是好方法。
ob_clean()方法:详细链接地址
ob_clean ( ) : void
此函数用来丢弃输出缓冲区中的内容。