在PHP 中處理POST 數據時,特別是在PHP 中WordPress 環境中,儘管關閉了魔術引號,仍有可能遇到意外的自動轉義行為。當 POST 資料自動轉義時,就會出現這個令人費解的問題,儘管據說魔法引號已被禁用(get_magic_quotes_gpc() 返回 0)。
深入研究後深入研究這個問題,很明顯 WordPress 在觸發這種自動轉義機制中發揮著至關重要的作用。當 WordPress 作為應用程式初始化過程的一部分進行引導時,其程式碼會幹擾 PHP 魔術引號的自然行為。
WordPress 包含攔截請求資料(包括 POST 資料)並執行某些操作的功能,其中之一正在轉義單引號 (')。即使在 php.ini 中禁用了魔術引號,這種行為也會延續。
對 WordPress 程式庫的仔細檢查發現了一個在下面報告的錯誤WordPress Core Trac 系統(票號 18322)。此問題與請求資料的錯誤處理有關,從而觸發了不必要的轉義。
幸運的是,有一個解決方案可以解決這種自動轉義的困境。 WordPress Codex 建議在對 POST 資料執行任何操作之前使用 stripslashes_deep() 函數「取消轉義」POST 資料。透過使用此功能,您可以有效地覆蓋 WordPress 的自動轉義並以原始格式擷取資料。
要實作此解決方案,請將以下程式碼加入您的 PHP 腳本:
$_GET = array_map('stripslashes_deep', $_GET);
$_POST = array_map('stripslashes_deep', $_POST);
$_COOKIE = array_map('stripslashes_deep', $_COOKIE);
$_SERVER = array_map('stripslashes_deep', $_SERVER);
$_REQUEST = array_map('stripslashes_deep', $_REQUEST);
此程式碼從所有超全域變數中刪除斜線,並確保在 PHP 中存取 POST 資料時不會自動轉義。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3