打開網(wǎng)站時(shí)提示: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
報(bào)錯(cuò)原因
自 PHP 5.3 起,該函數(shù)已經(jīng)被棄用,執(zhí)行它的時(shí)候會(huì)拋出 E_DEPRECATED 異常。 自 PHP 5.4 起,嘗試開啟 magic quotes 時(shí)該函數(shù)會(huì)產(chǎn)生一個(gè) E_CORE_ERROR 錯(cuò)誤。
解決方法
直接注釋掉 // @set_magic_quotes_runtime(0);
在 PHP 7 環(huán)境下,使用 @ 仍然報(bào)錯(cuò)。
set_magic_quotes_runtime(0)函數(shù)作用解釋
在php.ini的配置文件中,有個(gè)布爾值的設(shè)置,就是magic_quotes_runtime,當(dāng)它打開時(shí),php的大部分函數(shù)自動(dòng)的給從外部引入的(包括數(shù)據(jù)庫或者文件)數(shù)據(jù)中的溢出字符加上反斜線。
當(dāng)然如果重復(fù)給溢出字符加反斜線,那么字符串中就會(huì)有多個(gè)反斜線,所以這時(shí)就要用set_magic_quotes_runtime()與get_magic_quotes_runtime()設(shè)置和檢測php.ini文件中magic_quotes_runtime狀態(tài)。
為了使自己的程序不管服務(wù)器是什么設(shè)置都能正常執(zhí)行??梢栽诔绦蜷_始用get_magic_quotes_runtime檢測設(shè)置狀態(tài)秋決定是否要手工處理,或者在開始(或不需要自動(dòng)轉(zhuǎn)義的時(shí)候)用set_magic_quotes_runtime(0)關(guān)掉。
magic_quotes_gpc設(shè)置是否自動(dòng)為GPC(get,post,cookie)傳來的數(shù)據(jù)中的'"\加上反斜線??梢杂胓et_magic_quotes_gpc()檢測系統(tǒng)設(shè)置。如果沒有打開這項(xiàng)設(shè)置,可以使用addslashes()函數(shù)添加,它的功能就是給數(shù)據(jù)庫查詢語句等的需要在某些字符前加上了反斜線。這些字符是單引號(hào)(')、雙引號(hào)(")、反斜線(\)與 NUL(NULL 字符)。
如對(duì)本文有疑問,請(qǐng)?zhí)峤坏浇涣髡搲?,廣大熱心網(wǎng)友會(huì)為你解答??! 點(diǎn)擊進(jìn)入論壇