2010-09-08 165 views
0

我已將網站移至新服務器,並且我注意到從數據庫返回的字符串中有引號的字符串會自動用反斜線轉義,所以我將其顯示在我的HTML輸出\'哪裏有引用 - 我想知道是什麼導致這個PHP指令?這是什麼指令?

PHP或其他什麼指令會導致這種情況?所有的任何幫助

感謝

回答

1

更好地利用:var_dump(ini_get('magic_quotes_gpc'));

這將導致:字符串(1) 「1」,如果啓用,或字符串(0) 「」 如果禁用。

IM懷疑你會得到你的腳本中顯示的第一個選項,這樣你可能要包括這樣的:

php_value magic_quotes_gpc off 
php_value magic_quotes_runtime off 
在.htaccess文件

。假設您的主機允許通過.htaccess覆蓋,這應該沒問題。

+0

我得到'string(0)「」'回來了!我很確定魔術引號是關閉的。 Plus會不會影響從數據庫返回並打印的內容?我認爲這是全局請求變量? – Abs 2010-09-09 00:04:48

+1

它關閉。所以那不可能。你有沒有移動你的數據庫?如果是這樣,是否可以在複製那些插入的逃生?在中,那些反斜槓現在存儲在你的數據庫中? – Amelia 2010-09-09 00:16:53

+0

很好的問題。調查。 – Abs 2010-09-09 09:57:55

2

魔術引號http://php.net/manual/en/security.magicquotes.php

當打開時,所有的'(單引號),「(雙引號),\(反斜線)和NULL字符以逃脫。反斜槓自動這是相同的什麼addslashes()作用

禁用:

實施例#1禁用毫安gic引號服務器端

在php.ini中將這些指令的值設置爲Off的示例。有關更多詳細信息,請閱讀標題爲「如何更改配置設置」的手動部分。

; Magic quotes 
; 

; Magic quotes for incoming GET/POST/Cookie data. 
magic_quotes_gpc = Off 

; Magic quotes for runtime-generated data, e.g. data from SQL, from exec(), etc. 
magic_quotes_runtime = Off 

; Use Sybase-style magic quotes (escape ' with '' instead of \'). 
magic_quotes_sybase = Off 

如果對服務器配置的訪問不可用,則使用.htaccess也是一個選項。例如: 的php_flag magic_quotes_gpc的關

+0

儘管PHP是在新服務器上用'--enable-magic-quotes'編譯的,'magic_quotes_gpc'和'magic_quotes_runtime'都是關閉的?! – Abs 2010-09-08 22:59:31

+0

@Abs'echo ini_get('magic_quotes_gpc')'的結果是什麼?'在您看到此行爲的腳本之一中放置並運行後的結果? – 2010-09-08 23:00:34

+0

這更奇怪 - 我無法獲得回報!我看到一個空的字符串或空白空間。我編輯過相同的腳本來播種phpinfo,並且它說該指令已關閉。哦,等一下,這是罰款,因爲它的設置關閉 - 它不會顯示任何東西,對吧? – Abs 2010-09-08 23:08:42