专注于WEB技术的IT博客

ThinkPHP验证码问题解决方法汇总

时间:2012-11-30分类: Thinkphp浏览:16945
分享到:

关于验证码无法显示或者显示为一个红叉,我被折腾了好几天,真的很郁闷。我在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这文件。。


当这些删除了,验证码就正常显示了。。。4.jpg

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();注释掉或者加上,调试一下
 




猜你喜欢
ThinkPHP自定义模板标签详解
wblog3.1.3_2升级说明
ThinkPHP普通分组下Widget的使用
如何让ThinkPHP的模板引擎达到最佳效率
WBlog博客前台独立栏目页的实现方法
WB3.1.2_2版本使用说明
封装ThinkPHP的一个文件上传方法
ThinkPHP3.1.2整合UCenter详解(四)
ThinkPHP3.1.2整合UCenter详解(三)
ThinkPHP3.1.2整合UCenter详解(二)
标签 : thinkphp
除非注明,本文首发网志博客,欢迎转载!转载请注明本文地址:http://w3note.com/web/54.html,谢谢。
  • 评论
  • 赞助本站