帝國cms在刷新欄目頁的時候如果出現”Parse error: syntax error, unexpected '[' in 路徑\e\class\connect.php(2210) : eval()'d code on line 1“的錯誤解決辦法
[重要通告]如您遇疑難雜癥,本站支持知識付費業務,掃右邊二維碼加博主微信,可節省您寶貴時間哦!
今天沒事兒在家調試一個帝國CMS在刷新欄目頁時出現”Parse error: syntax error, unexpected '[' in L:\laoliang\e\class\connect.php(2210) : eval()'d code on line 1“的錯誤;
解決方法以及過程:
經過一系列排查,是因為列表模板勾選了”使用程序代碼“出現了問題,而要查出是那個欄目的列表模板出現問題,可以一個一個檢查列表模板,或者在數據更新中心一個一個刷新欄目頁,其實出現這類錯誤,也不算是致命的錯誤,因為程序代碼還是會執行,列表頁依然可以進行刷新。
找到connect.php,定位到2210行,”eval($listtemp);“eval() 函數把字符串按照 PHP 代碼來計算,如列表模板list.var勾選了程序代碼,但是又沒有按照$listtemp=‘’的格式書寫,就會產生上面的報警錯誤,當你把eval()去掉,再刷新,這類錯誤就可以屏蔽,或者把php.ini中的display_errors設置為Off,也可以屏蔽,但既然是列表模板程序所造成的錯誤,還是從根本上解決,不需要使用程序代碼的列表模板,就不要勾選”使用程序代碼“的選項了。
下面把可能的原因總結如下:
1、服務器沒有開啟short_open_tag,即短標簽。
如是自己的服務器,找到php.ini開啟短標簽即可。如虛擬主機,需咨詢服務商是否可以開啟短標簽即可;
2、變量模板有錯誤
有的列表或內容模板帶有含變量的模板,如list.var,應仔細檢查里面的代碼是否有語法錯誤。
3、欄目與內容數據不匹配。
如果內容調用的欄目并不存在,或者內容表中的內容對應的索引數據在index表中不存在,那么都有可能報錯。
修正方法就是清理不存在匹配數據的內容或欄目。
問題未解決?付費解決問題加Q或微信 2589053300 (即Q號又微信號)右上方掃一掃可加博主微信
所寫所說,是心之所感,思之所悟,行之所得;文當無敷衍,落筆求簡潔。 以所舍,求所獲;有所依,方所成!