首頁 >後端開發 >php教程 >如何在沒有 php.ini 存取權的共享託管環境中停用 Magic Quotes GPC?

如何在沒有 php.ini 存取權的共享託管環境中停用 Magic Quotes GPC?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-11-25 22:51:10269瀏覽

How Can I Disable Magic Quotes GPC in a Shared Hosting Environment Without php.ini Access?

在沒有直接PHP.ini 存取的共享託管環境中禁用魔術引號

許多共享託管提供者禁用修改php.ini 文件的功能,這可能會阻止用戶禁用Magic Quotes GPC。此設定會自動轉義用戶提交的資料中的字符,從而導致處理資料時出現問題。

要在無法存取php.ini 的情況下停用Magic Quotes GPC,請考慮以下解決方案:

自訂php.ini

一些共享託管環境允許用戶建立自訂php.ini 檔案。例如,在 suexec/FastCGI 設定中,每個網站空間的 php.ini 可能可用。透過將「magic_quotes_gpc = Off」行新增至此自訂 php.ini 檔案中,您可以覆寫預設設定。

.htaccess 檔案

如果自訂 php.ini ini 不是一個選項,您可以嘗試將以下程式碼新增至您的 .htaccess file:

AddType x-mapp-php5 .php
php_flag magic_quotes_gpc 0

請注意,該值應為「0」(表示「關閉」),而不是「O」(表示「大寫字母 o」)。

Ini_set() 函數

雖然ini_set() 不能直接改變magic_quotes_gpc 的值(它是一個PHP_INI_PERDIR 設定),您可以在解決方法中使用它:

if ( in_array( strtolower( ini_get( 'magic_quotes_gpc' ) ), array( '1', 'on' ) ) )
{
    $_POST = array_map( 'stripslashes', $_POST );
    $_GET = array_map( 'stripslashes', $_GET );
    $_COOKIE = array_map( 'stripslashes', $_COOKIE );
}

此腳本檢查Magic Quotes GPC 是否已啟用,並透過從 $_POST、$_GET 和 $_COOKIE 陣列中刪除斜線來反轉其效果。

以上是如何在沒有 php.ini 存取權的共享託管環境中停用 Magic Quotes GPC?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn