在IIS下部署Thinkphp项目,验证码不能显示的解决办法
由于公司租用的是虚拟空间,而且用的是IIS服务器,所以部署PHP的时候就出现很多问题:比如昨天就碰到这个问题:在IIS下部署Thinkphp项目,验证码不能显示
这是生成验证码的方法:
// 制作专门方法实现验证码生成 function verifyImg() { // 以下类Verify在之前并没有include引入 // 走自动加载Think.class.php autoload() $config = array ( 'useNoise' => false, 'imageH' => 35, // 验证码图片高度 'imageW' => 100, 'fontSize' => 14, 'fontttf' => '4.ttf', // 验证码字体,不设置随机获取 'length' => 4 ) // 验证码位数 ; $verify = new \Think\Verify ( $config ); $verify->entry (); }
然后再apache下可以,但是在IIS下就是不行,看网上说的最多的是去掉BOM头就可以了,但是我用UE保存为不带BOM头的还是不行
今天终于解决了:
在生成验证码之前:加上ob_clean
// 制作专门方法实现验证码生成 function verifyImg() { // 以下类Verify在之前并没有include引入 // 走自动加载Think.class.php autoload() $config = array ( 'useNoise' => false, 'imageH' => 35, // 验证码图片高度 'imageW' => 100, 'fontSize' => 14, 'fontttf' => '4.ttf', // 验证码字体,不设置随机获取 'length' => 4 ) // 验证码位数 ; ob_clean(); $verify = new \Think\Verify ( $config ); $verify->entry (); }
就OK了,当然这些是在开启GD库的前提下