国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

ThinkPHP驗(yàn)證碼不顯示的解決方案

Meils / 1548人閱讀

摘要:今天遇到一個(gè)很奇怪的,就是我寫(xiě)了一個(gè)程序本地運(yùn)行正常,但是發(fā)布到甲方的服務(wù)器上出現(xiàn)無(wú)法顯示驗(yàn)證碼的。適用于驗(yàn)證碼圖片在新窗口打開(kāi)的時(shí)候顯示了報(bào)錯(cuò)信息以及一堆亂碼的情況下,如果有報(bào)錯(cuò)信息,請(qǐng)根據(jù)報(bào)錯(cuò)信息進(jìn)行檢查驗(yàn)證碼所調(diào)用的字體是否缺失。

今天遇到一個(gè)很奇怪的BUG,就是我寫(xiě)了一個(gè)PHP程序本地運(yùn)行正常,但是發(fā)布到甲方的服務(wù)器上出現(xiàn)無(wú)法顯示驗(yàn)證碼的BUG。

具體表現(xiàn)就是chorme瀏覽器上顯示一個(gè)裂了的圖片小圖標(biāo),右鍵點(diǎn)擊該圖片在新窗口打開(kāi),仍然是一個(gè)裂了的小圖片,并非報(bào)錯(cuò)信息(開(kāi)啟xdebug擴(kuò)展和php報(bào)錯(cuò)的情況下),如果是這樣那么就說(shuō)明驗(yàn)證碼URL路由和業(yè)務(wù)邏輯代碼沒(méi)問(wèn)題,是生成驗(yàn)證碼的環(huán)節(jié)出問(wèn)題了,我的Debug思路是這樣的:

1.檢查GD庫(kù)是否安裝正確,Linux推薦使用yum或者apt或者pecl等方式安裝,Windows推薦使用phpStudy這個(gè)集成環(huán)境,他集成好了常用擴(kuò)展,只需鼠標(biāo)右鍵開(kāi)啟即可。(適用于驗(yàn)證碼圖片在新窗口打開(kāi)的時(shí)候顯示了報(bào)錯(cuò)信息以及一堆亂碼的情況下,如果有報(bào)錯(cuò)信息,請(qǐng)根據(jù)報(bào)錯(cuò)信息進(jìn)行debug)

2.檢查驗(yàn)證碼所調(diào)用的字體是否缺失。有部分驗(yàn)證碼組件調(diào)用的字體在目標(biāo)計(jì)算機(jī)上并未安裝,這個(gè)需要分析驗(yàn)證碼模塊的源碼觀察。我用的是ThinkPHP官方的think-captcha,在vendortopthinkthink-captchasrc可以找到他的源碼,在vendortopthinkthink-captchaassets這里可以看到這款驗(yàn)證碼插件是自帶了字體的,所以ThinkPHP的驗(yàn)證碼基本上可以不用考慮字體問(wèn)題,如果是別的驗(yàn)證碼插件,那么還是要檢查一下這個(gè)地方的。

3.把有bug的驗(yàn)證碼圖片下載下來(lái),以及本地測(cè)試正常的驗(yàn)證碼圖片下載下來(lái),使用記事本查看并且對(duì)比。

上圖是本地環(huán)境的驗(yàn)證碼圖片的記事本,我們使用更專業(yè)的16進(jìn)制編輯器來(lái)分析一下文件差別。

如圖所示,我們發(fā)現(xiàn)bad這個(gè)壞文件除了前面多了EF BB BF等數(shù)字以外,其他內(nèi)容一模一樣,說(shuō)明是PHP在渲染圖片的時(shí)候多渲染了這些文字,至于原因我猜測(cè)可能是服務(wù)器上沒(méi)有專業(yè)的代碼編輯器,因此運(yùn)維人員使用普通的Windows記事本修改了php代碼導(dǎo)致多了這個(gè)BOM頭部。

如果是第三種原因,解決方法有兩個(gè),一個(gè)是在驗(yàn)證碼的imagepng輸出圖片代碼調(diào)用之前用ob_clean清除php的輸出緩沖區(qū)。還有就是使用一些工具批量對(duì)代碼的bom進(jìn)行去除。

我這里使用的是ob_clean,在think-captcha的主文件Captcha.php的第203行之前加上ob_clean(),這樣一勞永逸。如果對(duì)性能和穩(wěn)定性有嚴(yán)苛要求,建議還是用工具批量去除bom比較保險(xiǎn)。同時(shí)也建議大家隨時(shí)在服務(wù)器上裝一個(gè)editplus等專業(yè)的代碼編輯器。不要用Windows的記事本修改代碼。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/28769.html

相關(guān)文章

  • thinkphp 驗(yàn)證碼不顯示,加載不了解決方法。

    摘要:在用處理用戶登錄功能時(shí),碰上了驗(yàn)證碼加載不出來(lái)的問(wèn)題。清空擦掉輸出緩沖區(qū)的驗(yàn)證碼輸出較為簡(jiǎn)單,只要調(diào)用封裝好的類就行啦。類可以支持驗(yàn)證碼的生成和驗(yàn)證功能 在用 thinkPHP3.2.3 處理用戶登錄功能時(shí),碰上了驗(yàn)證碼加載不出來(lái)的問(wèn)題。 一臉懵逼地調(diào)試輸出一下緩沖區(qū)的內(nèi)容: var_dump(ob_get_clean()); // 得到當(dāng)前緩沖區(qū)的內(nèi)容并刪除當(dāng)前輸出緩 返回如下圖...

    bladefury 評(píng)論0 收藏0
  • PHP_ThinkPHP

    摘要:相關(guān)信息,面向過(guò)程,面向?qū)ο螅p量級(jí)。輕量級(jí)功能實(shí)用,面向過(guò)程和面向?qū)ο蠡旌祥_(kāi)發(fā)。找到文件為文件名為驗(yàn)證碼類沒(méi)有在自動(dòng)加載類中載入,需要手動(dòng)載入。底層的和會(huì)影響原始的框架中的引入,可以使用框架中提供的引入。 不使用框架的問(wèn)題 在實(shí)際工作中,如果不使用框架會(huì)遇到的問(wèn)題。 程序項(xiàng)目生命時(shí)間非常短(維護(hù)性,生命力弱) 分共協(xié)作開(kāi)發(fā)項(xiàng)目,彼此代碼風(fēng)格不一致。 開(kāi)發(fā)程序,喜歡挖坑。 開(kāi)發(fā)者離職...

    wind3110991 評(píng)論0 收藏0
  • 基于ThinkPHP5拿來(lái)即用高性能后臺(tái)管理系統(tǒng)

    摘要:數(shù)據(jù)庫(kù)文件已經(jīng)上傳,安裝配置就可以使用簡(jiǎn)稱即基于的后臺(tái)管理系統(tǒng)官方文檔地址在線體驗(yàn)地址賬戶密碼線上倉(cāng)庫(kù)在線地址源代碼下載克隆直接下載本地部署運(yùn)行環(huán)境要求建議配置虛擬域名若不清楚,請(qǐng)自行解決之,方便接下來(lái)開(kāi)展你的開(kāi)發(fā)工作。 喜歡就Star,不只是Fork; 想要分享的動(dòng)機(jī)才是驅(qū)動(dòng)力,而技術(shù)僅僅是一種方法。 數(shù)據(jù)庫(kù)文件已經(jīng)上傳,安裝配置就可以使用 showImg(https://seg...

    894974231 評(píng)論0 收藏0
  • 基于ThinkPHP5拿來(lái)即用高性能后臺(tái)管理系統(tǒng)

    摘要:數(shù)據(jù)庫(kù)文件已經(jīng)上傳,安裝配置就可以使用簡(jiǎn)稱即基于的后臺(tái)管理系統(tǒng)官方文檔地址在線體驗(yàn)地址賬戶密碼線上倉(cāng)庫(kù)在線地址源代碼下載克隆直接下載本地部署運(yùn)行環(huán)境要求建議配置虛擬域名若不清楚,請(qǐng)自行解決之,方便接下來(lái)開(kāi)展你的開(kāi)發(fā)工作。 喜歡就Star,不只是Fork; 想要分享的動(dòng)機(jī)才是驅(qū)動(dòng)力,而技術(shù)僅僅是一種方法。 數(shù)據(jù)庫(kù)文件已經(jīng)上傳,安裝配置就可以使用 showImg(https://seg...

    SHERlocked93 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<