关于Thinkphp验证码不能够显示的解决方法

AndyYang| 阅读:1101 发表时间:2012-04-05 17:25:00 php
摘要:我在上面三步都确认没问题了,验证码还是没有显示。我相当的纠结,甚至很怀疑thinkphp这个框架,我直接访问这个方法的时候是看到一连串的乱码字符,我觉得是图片的header头没有正确加载,可是类里面有输出image的header头,然后我觉得应该是什么地方在image的header头之前输出了header头,但我不是很清楚在哪里。

Thinkphp中加载验证码:
在控制器中添加:

Public function verify(){
import("ORG.Util.Image");
Image::buildImageVerify();
}

在模板中直接用:

<img src="/hyback.php/Public/verify/"/>
或者
<imgsrc="/hyback.php/Essay/verify">

至于无法显示验证码:

一:看thinkphp的imagel类是否存在,一般不存在的会显示一个红叉。

二:看你的gd库是否开启,phpinfo();直接查看。

三:检查是否有bom头:代码一搜,网上一大片。一个遍历删除的方法。

我在上面三步都确认没问题了,验证码还是没有显示。我相当的纠结,甚至很怀疑thinkphp这个框架,我直接访问这个方法的时候是看到一连串的乱码字符,我觉得是图片的header头没有正确加载,可是类里面有输出image的header头,然后我觉得应该是什么地方在image的header头之前输出了header头,但我不是很清楚在哪里。然后偶然一日看到一篇文章,关于php代码不要包含结束标记 ‘?>’的原因:
    1、Removing it eliminates the possibility for unwanted whitespace at the end of files which can cause "header already sent" errors, XHTML/XML validation issues, and other problems.
    2、The closing delimiter at the end of a file is optional.
    3、PHP.net itself removes the closing delimiter from the end of its files (example: prepend.inc), so this can be seen as a "best practice."

然后抱着试试的态度删掉了结束标记,验证码就显示了,我擦,这样都行。

本文为AndyYang原创,转载请注明出处!
如果您觉得好,可以打赏作者:
如果您觉得累了,是否想看点美女养养眼:猛戳>>朋友帮
如果您觉得皮了,是否想来点神吐槽:猛戳>>iPhone查询中

已有0条评论

昵称:
邮箱:

  • 最新评论

iPhone查询中 - bbs.ipcxz.com 朋友帮 - www.pengyb.cn iPhone查询中 - bbs.ipcxz.com
反馈
微信订阅号