PHP Deprecated: Directive 'magic_quotes_gpc' is deprecated 解決辦法

apache 報錯

PHP Deprecated:  Directive 'magic_quotes_gpc' is deprecated 

解決辦法

去官方看了下,用紅色的block特別註明了,php5.3已經不推薦使用這個東東了,在 PHP6 中已經將其廢棄:
magic_quotes_gpc boolean
Warning
This feature has been DEPRECATED as of PHP 5.3.0 and REMOVED as of PHP 6.0.0. Relying on this feature is highly discouraged.

magic_quotes_gpc=on 的配置下,插入數據時,Magic quotes 會自動將數據轉義。 可以從一定程度上,讓初學者帶離腳本的安全風險。例如在沒有任何保護措施的代碼下,開啓了 Magic quotes 後會少很多的風險,例如注入問題。以前看一些安全方面的文章,入侵者總是喜歡選擇magic_quotes_gpc=off的站下手,如果看到其 magic_quotes_gpc=on ,估計就不會弄這個站了。
那麼官方爲什麼要廢除這個東東呢?搜索了一下,看到一個寫得相當詳細和全面的帖子,下面將其中提到的幾個原因帖出:
爲什麼不使用 Magic quotes:

可移植性
無論此功能是否開啓,它都會影響腳本的可移植性,因爲它影響我們後續過濾數據的操作。

性能問題
在獲取所有的外部數據之前都會被轉義,這無疑會增加運行時的花銷(而且並不是所有的數據都需要轉義)。

造成困惑
正如上述所言,並非所有的數據都需要被轉義。有可能出現的一種情況,就是當你爲了獲取未被轉義的數據,而“瘋狂的”使用 stripslashes 函數。

如何禁用 magic_quotes_gpc 和safe_mode :

1,用 php.ini 配置文件全局禁用
1
2

magic_quotes_gpc = Off
safe_mode = Off


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章