織夢cms後臺點選暢言評論報錯的解決辦法?

先吐槽一下,織夢好久都沒有更新了,bug也沒人修復,今天在測試的時候又遇到一個問題,點選模組下的暢言評論時報了一個致命錯誤

Fatal error: Call-time pass-by-reference has been removed in

D:\amp\www\dede\dede\changyan_main.php on line 247

最後在網上找到了原因,這裡分享給大家。

織夢cms後臺點選暢言評論報錯的解決辦法

工具/原料

dedecms5.7

方法/步驟

出現這個問題的原因是由於從php5.4版本開始,認為在呼叫函式時傳引數的地址引用會導致致命錯誤,而在php5.3以及前的版本只是不贊成的錯誤,而織夢的暢言評論版塊恰巧就使用了這種方法,導致在較新的php環境下出現本文所說的錯誤。

織夢cms後臺點選暢言評論報錯的解決辦法

分析完原因,下面說下解決辦法,第一種辦法是改原始碼,把這種錯誤的使用方式修改過來,去掉引數前面的' & ' 符號。

織夢cms後臺點選暢言評論報錯的解決辦法

修改儲存之後再嘗試一下,發現已經沒有報錯了。

織夢cms後臺點選暢言評論報錯的解決辦法

但是系統此時又出現了一個bug,一直停在這個頁面,不停提示:

系統未繫結暢言賬號,我們將自動為您分配一個初始賬號,請耐心等待……

出現這個問題的原因是include\helpers\changyan.helper.php檔案中一個引數寫錯了$content = is_array($port) 這裡的$port應該是$post才對。

織夢cms後臺點選暢言評論報錯的解決辦法

把修改過來再次嘗試一下,已經成功進入暢言評論管理頁面了。

織夢cms後臺點選暢言評論報錯的解決辦法

對於第一個錯誤其實也可以修改php.ini裡的allow_call_time_pass_reference的引數值改為TRUE,但不建議這樣做,首先如果你用的是虛擬主機,一般是沒機會更改配置檔案的,其次畢竟這是種錯誤寫法,最好還是改正過來。

注意事項

織夢版本dedecms5.7 uft-8 sp1

相關問題答案