真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

ThinkPHP驗(yàn)證碼不顯示的解決方法-創(chuàng)新互聯(lián)

這篇文章給大家分享的是有關(guān)ThinkPHP驗(yàn)證碼不顯示的解決方法的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過來看看吧。

創(chuàng)新互聯(lián)公司專注于烏拉特中企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站設(shè)計(jì),成都商城網(wǎng)站開發(fā)。烏拉特中網(wǎng)站建設(shè)公司,為烏拉特中等地區(qū)提供建站服務(wù)。全流程按需策劃,專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務(wù)

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

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

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

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

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

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)證碼基本上可以不用考慮字體問題,如果是別的驗(yàn)證碼插件,那么還是要檢查一下這個(gè)地方的。

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

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

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

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

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

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

ThinkPHP驗(yà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的記事本修改代碼。

感謝各位的閱讀!關(guān)于“ThinkPHP驗(yàn)證碼不顯示的解決方法”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!


文章標(biāo)題:ThinkPHP驗(yàn)證碼不顯示的解決方法-創(chuàng)新互聯(lián)
當(dāng)前路徑:http://weahome.cn/article/dhidpj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部