濟南建網站知識,網站建設技術靈魂總結
Website news, Technical summary of soul
phpcms V9 是目前國內使用人數最多的一款開源免費的CMS系統,正是由于他的免費性,開源性,以及其自身的功能性比較強大,所以倍受許多站長朋友們的親來,以及許多的濟南網站建設公司的喜歡。phpcms也為了完善程序漏洞,官方人員會經常性的發布一些程序補丁,讓用戶使用。防止一些特殊群體,通過程序的漏洞去攻擊別人的網站。不過這次更新了phpcms v9之后,發現網站后臺上傳縮略圖的時候,會出現無法上傳的現象,瀏覽器提示undefined錯誤,經過一方面的測試,發現這個錯誤,只有一些火狐核心的瀏覽器才會出現,IE,360這種的IE核心瀏覽器上傳一切正常。這是什么原因造成的呢,我們通過程序去排查一下為何后臺無法上傳縮略圖,并出現undefined的錯誤。
首先打開網站程序路徑中的,phpcms---modules----attachment----attachments.php文件,找到attachments.php文件中的50行---53行代碼,這里有一段判斷是否登錄的程序,我們把這段話刪掉就可以了。如圖所示:
通過刪除非常簡單的一段話,就能解決類似火狐核心的瀏覽器,后臺無法上傳縮略圖的錯誤。接下來我們詳細分析為什么這句話,就會導致后臺無法上傳縮略圖呢,以后如果大家遇到程序上面的錯誤,也可以通過下面的方法去分析,一定要學會靈活使用,程序都是死的,而我們程序員的思維是靈活的。
注:如果您對為何會出現無法上傳縮略圖錯誤不感興趣,以下內容均可略過不看!
既然知道是這句話的原因了,那么我們就看看為何是這句話導致了無法上傳縮略圖。
if(isset($_POST['dosubmit'])){ //判斷是否點擊了提交按鈕
//判斷是否登錄
if(empty($this->userid)){ //如果useid為空,則直接退出。($this指類本身,是由attachments類在構造函數制定的。)
exit('0');
}
既然是判斷了userid為空就退出,那我們無法上傳縮略圖,肯定是被判斷為空了。我們把$this->userid輸出一下看看。
從圖中可以看出,這里輸出的是1,也就是說$this->userid是為1的,1肯定不是空值了。那怎么會出現退出現象了呢。我們再換一個方法測試,看看
if(empty($this->userid)){
exit('0');
}
這句話是否執行了。
//判斷是否登錄
if(empty($this->userid)){
echo '<script language=\"javascript\">alert(15564);</script>';
exit('0');
} else{
echo '<script language=\"javascript\">alert(33333);</script>';
}
如圖所示:
我們看到,程序確實執行了,跳出的動作??磥砘鸷诵牡臑g覽器還是把“1”當成了empty來處理,所以導致了,phpcms V9在使用火狐核心的瀏覽器時,后臺無法上傳縮略圖的現象。
您可能還對以下文章感興趣:
公司地址:山東省濟南市東關大街中泰大廈 Copyright?2006-2020 www.wh-haojing.com. 濟南網站設計我們值得信賴. All rights reserved .
7x24小時服務熱線:15069066861 網站建設博客