thinkphp网站之前在服务器上运行正常,验证码可以显示。后来迁移到另外一台服务器后,验证码一直不显示。

首先想到的是GD库没打开,然后研究php.ini 。后来想到其他网站验证码都正常显示,那就不是GD库的问题了。

同时排除了因为文件编码问题。

后来看了下thinkphp 自带的 Trace信息,原来是因为之前的缓冲区的内容导致 在新的服务器上一直不显示验证码。

解决如下 :

[php]
public function verifyimg(){
import("ORG.Util.Image"); //如果之前引入过此文件,此处不需要引入。
ob_end_clean(); //重要的是这一句,加个这句,清除之前的缓存内容后,验证码就显示了。
Image::buildImageVerify();
}
[/php]