logo头像

欢迎访问17岁博客

thinkphp上传后验证码不显示问题

出现ThInkPHP验证码不显示的情况

官方提示如下:
如果无法显示验证码,请检查:

① PHP是否已经安装GD库支持;
② 输出之前是否有任何的输出(尤其是UTF8的BOM头信息输出);(打开验证码文件为乱码,也有可能是BOM编码,可查看下方2寻找解决方法)
③ Image类库是否正确导入;
④ 如果是中文验证码检查是否有拷贝字体文件到类库所在目录;
⑤URL_MODEL模式,有些服务器不支持REWRITE 。

针对个人而言,在使用thinkphp验证码时发现,本地用win7+phpstudy在php5.6及以下环境搭建好之后,本地显示正常,可是在上传到服务器中无论用宝塔还是用win7+phpstudy相同环境都无法加载验证码,通过网上资料查询得知解决方法:

1、从网上看有说开启GD库的。检查了PHP.INI。PHPSTUDY中已经开启。

2、看到csdn和tp等论坛有说PHP里因为BOM头出现这样的问题,用完之后(上一篇:有PHP去除BOM头小工具),也没有解决问题。但是网页有些样式却在用了之后完全加载了(说明一下:之前本地显示非常正常,上传之后有个别样式没加载出来,学渣的我没查出原因,没想到用了删除BOM头的程序,(备注:支持ANSI转为UTF-8)竟然无意中解决了,哈哈,应该是里面ANSI转为UTF-8起的作用)

3、查阅了大量有关tp验证码上传后显示不正确的原因后,还有一种极有可能的原因是ob_clear()函数,尝试后发现竟然解决了。(说明一下:我没学过php以及后台框架,连加在哪里我都不知道,查了查发现用的文件名好像不太一样,但是思考之后,试了试竟然解决了。但也能解决一些问题,所以当想我这样的菜鸟遇见问题时要勇于尝试,善于搜索和思考,当然一定随便就放弃,这不就解决了吗哈哈。还得多学习才是硬实力。)
1
1