溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

php圖片驗(yàn)證碼顯示失敗怎么解決

發(fā)布時(shí)間:2020-06-26 15:18:56 來(lái)源:億速云 閱讀:252 作者:Leah 欄目:編程語(yǔ)言

php圖片驗(yàn)證碼顯示失敗怎么解決?相信很多沒(méi)有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問(wèn)題出現(xiàn)的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。

1、安裝gd模塊

window環(huán)境下面只需要在php.ini文件里面找到“;extension=php_gd2.dll”,把前面的分號(hào)去掉就可以了,重啟apache后,你就可以在phpinfo()里面找到這個(gè)gd信息。

如果是在ubuntu環(huán)境下面,你需要安裝gd模塊,命令是

sudo apt-get install php5-gd

安裝好了以后,也可以看到上面的模塊。

2、確認(rèn)代碼文件的編碼

如果是有BOM的utf-8,需要改成無(wú)BOM格式。

3、使用ob_clean()了,清除一下緩存

ob_clean這個(gè)函數(shù)的作用就是用來(lái)丟棄輸出緩沖區(qū)中的內(nèi)容,如果你的有許多生成的圖片類文件,那么想要訪問(wèn)正確,就要經(jīng)常清除緩沖區(qū)。

public function create()
    {
        ob_clean();
        $a = new verify();
        session::set('captcha', strtolower($a->create(4, 15)));
        view::assign("captcha", $a);
        view::display("captcha");
        exit(0);
    }

4、PHP版本問(wèn)題

大家如果使用較高的php版本,那么不能使用未定義變量,否則會(huì)報(bào)notice錯(cuò)誤,$new_number和$_SESSION['check_checks']在使用前必須用isset判斷一下或者你用老代碼的話在最開(kāi)始處加上error_reporting(E_ALL & ~E_NOTICE);屏蔽掉notice錯(cuò)誤(不推薦),
所以用isset()判斷一下,來(lái)確保它被定義了。

如果沒(méi)解決?

通過(guò)debug發(fā)現(xiàn),驗(yàn)證碼沒(méi)顯示出來(lái)是字體文件找不到。

$font="simhei.ttf"

寫(xiě)的是相對(duì)路徑,需要把字體文件放到項(xiàng)目中?;蛘邔?xiě)系統(tǒng)字體文件的絕對(duì)路徑。
我放到了lib文件夾下:

$font=LIB_PATH."simhei.ttf"

看完上述內(nèi)容,你們掌握php圖片驗(yàn)證碼顯示失敗的解決方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI