在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庫的前提下


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM