解決TP5.0 網站圖形驗證碼不顯示

原因:網站做了多語言切換,當切換未英文語言時,圖形驗證碼不能正常顯示。

解決辦法:

這個是TP5本身存在的一個bug,官方也給出瞭解決辦法:在獲取驗證碼之前清除一下緩存(ob_clean())即可。

class CaptchaController
{
    public function index($id = "")
    {
        //來路驗證
        if (!checkCaptchaToken_only(input('token'))) {
            return ;
        }
        ob_clean();
        $captcha = new Captcha((array)Config::get('captcha'));
        return $captcha->entry($id);
    }
    
}

ob_clean()這個函數的作用就是用來丟棄輸出緩衝區中的內容,如果你的網站有許多生成的圖片類文件,那麼想要訪問正確,就要經常清除緩衝區。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章