phpcms V9 是目前國內(nèi)使用人數(shù)最多的一款開源免費的CMS系統(tǒng),正是由于他的免費性,開源性,以及其自身的功能性比較強大,所以倍受許多站長朋友們的親來,以及許多的公司的喜歡。phpcms也為了完善程序漏洞,官方人員會經(jīng)常性的發(fā)布一些程序補丁,讓用戶使用。防止一些特殊群體,通過程序的漏洞去攻擊別人的網(wǎng)站。不過這次更新了phpcms v9之后,發(fā)現(xiàn)網(wǎng)站后臺上傳縮略圖的時候,會出現(xiàn)無法上傳的現(xiàn)象,瀏覽器提示undefined錯誤,經(jīng)過一方面的測試,發(fā)現(xiàn)這個錯誤,只有一些火狐核心的瀏覽器才會出現(xiàn),IE,360這種的IE核心瀏覽器上傳一切正常。這是什么原因造成的呢,我們通過程序去排查一下為何后臺無法上傳縮略圖,并出現(xiàn)undefined的錯誤。
一、phpcms V9 后臺無法上傳縮略圖的處理方法
首先打開網(wǎng)站程序路徑中的,phpcms---modules----attachment----attachments.php文件,找到attachments.php文件中的50行---53行代碼,這里有一段判斷是否登錄的程序,我們把這段話刪掉就可以了。如圖所示
通過刪除非常簡單的一段話,就能解決類似火狐核心的瀏覽器,后臺無法上傳縮略圖的錯誤。接下來我們詳細分析為什么這句話,就會導致后臺無法上傳縮略圖呢,以后如果大家遇到程序上面的錯誤,也可以通過下面的方法去分析,一定要學會靈活使用,程序都是死的,而我們程序員的思維是靈活的。
注:如果您對為何會出現(xiàn)無法上傳縮略圖錯誤不感興趣,以下內(nèi)容均可略過不看!
二、phpcms V9 后臺無法上傳縮略圖的原因分析
既然知道是這句話的原因了,那么我們就看看為何是這句話導致了無法上傳縮略圖。
if(isset($_POST['dosubmit'])){ //判斷是否點擊了提交按鈕
//判斷是否登錄
if(empty($this->userid)){ //如果useid為空,則直接退出。($this指類本身,是由attachments類在構(gòu)造函數(shù)制定的。)
exit('0');
}
既然是判斷了userid為空就退出,那我們無法上傳縮略圖,肯定是被判斷為空了。我們把$this->userid輸出一下看看。
從圖中可以看出,這里輸出的是1,也就是說$this->userid是為1的,1肯定不是空值了。那怎么會出現(xiàn)退出現(xiàn)象了呢。我們再換一個方法測試,看看
if(empty($this->userid)){
exit('0');
}
這句話是否執(zhí)行了。
//判斷是否登錄
if(empty($this->userid)){
echo '';
exit('0');
} else{
echo '';
}
如圖所示:
我們看到,程序確實執(zhí)行了,跳出的動作??磥砘鸷诵牡臑g覽器還是把“1”當成了empty來處理,所以導致了,phpcms V9在使用火狐核心的瀏覽器時,后臺無法上傳縮略圖的現(xiàn)象。\
濟南網(wǎng)站建設(shè)www.0531soso.com
申請創(chuàng)業(yè)報道,分享創(chuàng)業(yè)好點子。點擊此處,共同探討創(chuàng)業(yè)新機遇!