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."
然后抱着试试的态度删掉了结束标记,验证码就显示了,我擦,这样都行。
已有0条评论