打開網站時提示:Fatal error: Uncaught Error: Call to undefined function set_magic_quotes_runtime() in D:\Web\bbs\install\index.PHP:12 Stack trace: #0 {main} thrown in D:\Web\bbs\install\index.php on line 12
報錯原因
自 PHP 5.3 起,該函數已經被棄用,執行它的時候會拋出 E_DEPRECATED 異常。 自 PHP 5.4 起,嘗試開啟 magic quotes 時該函數會產生一個 E_CORE_ERROR 錯誤。
解決方法
直接注釋掉 // @set_magic_quotes_runtime(0);
在 PHP 7 環境下,使用 @ 仍然報錯。
set_magic_quotes_runtime(0)函數作用解釋
在php.ini的配置文件中,有個布爾值的設置,就是magic_quotes_runtime,當它打開時,php的大部分函數自動的給從外部引入的(包括數據庫或者文件)數據中的溢出字符加上反斜線。
當然如果重復給溢出字符加反斜線,那么字符串中就會有多個反斜線,所以這時就要用set_magic_quotes_runtime()與get_magic_quotes_runtime()設置和檢測php.ini文件中magic_quotes_runtime狀態。
為了使自己的程序不管服務器是什么設置都能正常執行??梢栽诔绦蜷_始用get_magic_quotes_runtime檢測設置狀態秋決定是否要手工處理,或者在開始(或不需要自動轉義的時候)用set_magic_quotes_runtime(0)關掉。
magic_quotes_gpc設置是否自動為GPC(get,post,cookie)傳來的數據中的'"\加上反斜線??梢杂胓et_magic_quotes_gpc()檢測系統設置。如果沒有打開這項設置,可以使用addslashes()函數添加,它的功能就是給數據庫查詢語句等的需要在某些字符前加上了反斜線。這些字符是單引號(')、雙引號(")、反斜線(\)與 NUL(NULL 字符)。
如對本文有疑問,請提交到交流論壇,廣大熱心網友會為你解答??! 點擊進入論壇