关于验证码无法显示或者显示为一个红叉,我被折腾了好几天,真的很郁闷。我在thinkphp官方论坛搜索了好多帖子都没有解决,最后发了一篇求助帖子“ thinkphp3.1顽固不化的验证码红叉!”,在这里感谢水平凡(论坛昵称)的答复,问题终于得到解决。在这里把帖子放出来,也顺便作一下小结,希望别人不再走我的弯路。
下面是我发的帖子:
问题:有前后台两个项目(WBlog),后台验证码显示正常,前台却不行!!!???
调试过程:
后台代码:
class PublicAction extends Action {
public function verify(){
import(ORG.Util.Image);
Image::buildImageVerify(4,1,gif,48,22,verify);
}
}
调试结果如图1

前台代码:
class TextAction extends Action {
// 首页
public function index() {
import(ORG.Util.Image);
Image::buildImageVerify(4,1,gif,48,22,verify);
}
}
调试结果:

从上面的调试过程可知:
它们是在同一个服务器里的,所以配置方面的东西什么都是一样的,还有图片类放在核心包里,
加载路径错误可以排除
也曾经这样调用:
public function verify(){
import(ORG.Util.Image);
Image::buildImageVerify();
}
还考滤到什么编码,BOM都试过了
但还是老问题,后台显示正常,前台前不行!!!
求助!!!!!!!!!
看你问这么多天了,你都没有解决,我下载代码看了,完全是你的问题,为什么这么说,我一一给你道来:

来看看你代码,首先看W3note\Lib\Action\TextAction.class.php这个文件

大家看到了,接着看W3note\Lib\Action\CommonAction.class.php这文件。。

当这些删除了,验证码就正常显示了。。。水平凡后台
11 小时前 上传
下载附件(14.94 KB)
造成这个错误的原因,居然是代码不规范,不好的编码习惯,是要付出代价的,切记!
对于thinkphp验证码无法显示要注意的问题
1、是否已成功安装了GB库
2、验证码类放置的位置,以及加载的路径是否正确
import("@.ORG.Util.Image");--放在项目包里加载方式
import(ORG.Util.Image);--放在核心扩展包的加载方式
3、检查一下是否少了String类,如果不少,和Image是否在同一个目录下。
4、检查一下页面编码是不是UTF8 ,不是的话转换一下,方法看一下“将中文乱码解决方法进行到底”
5、如果是缓存造成的,清除一下BOM,方法是找到一个清除BOM的类,到thinkphp官方论坛里找。水平凡后台
6、不同版本的核心包验证码类有些是有出入的,试着打开Image.class.php中的output函数中的ob_clean();注释掉或者加上,调试一下
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/ruanjian/article-26609-1.html
最先进的濒海战斗舰不就驻扎在新加坡么~
从现在抓起一百年以后我看还是有希望的