验证码不显示根据我php经验分析
、先确保是否开启了 gd库
2、页面是否存在bom头
3、导入的ORG.Util.Image是否存在
4、入口文件中是否有define(‘APP_DEBUG’, TRUE); //是否开启调试模式,上线时请改为false ?这句(注:很关键作者就犯了这个错误折腾了老半天才找到)。
后来到了官方
根据这里的入门教程,我都检查了,GD是开着的,2.Image类库以及String类库导入也正确,通过output($im, $type='png', $filename='c:\verify.png') 这里给filename赋值后在C盘下是有verify.png图片保存,图片也正常显示,那就是3.验证码输出之前是否有任何的其他输出了,我把相关的页面都使用dreamware打开查看过,也都是正常了吧,可现在就是网页上验证码还是红叉叉
官方说
title="{$Think.lang.refresh_verify_code}" class="verify_img" src="{:U('logo/code', array('t'=>time()))}" /> code方法就返回的是这个img对象 的数据流,会自动解析出来图片的,但此方法还是解决不了我的问题。
后来再接着百度,找到一文章
ThinkPHP自带验证码的函数类,存放路径为:ThinkPHP/Lib/ORG/Util/验证码类
使用的时候只需在Index控制器中引入,方法如下:
代码如下 | 复制代码 |
public function verify() { import ( "ORG.Util.Image" ); Image::buildImageVerify ( 4 ); } |
在模板页面中调用方法如下:
代码如下 | 复制代码 |
<img id="verifyImg" src="/Wen/verify/" />
if ($_SESSION['verify'] != md5($_POST['verify'])){ $this->error('验证码错误!'); } |
Thinkphp验证码不显示图片最后发现时由于编码问题引起的,格式转换无UTF-8无DOM时,久违的验证码终于出现了。