首頁 >後端開發 >php教程 >為什麼 WordPress 在停用 Magic Quotes 後仍然會轉義資料?

為什麼 WordPress 在停用 Magic Quotes 後仍然會轉義資料?

Patricia Arquette
Patricia Arquette原創
2024-10-29 06:56:02353瀏覽

Why is WordPress Still Escaping Data After Disabling Magic Quotes?

WordPress 禁用魔術引號的自動轉義困境

儘管在PHP 配置中禁用了魔術引號,WordPress 仍繼續自動轉義POST數據,特別是單引號。這種令人費解的行為經常讓開發人員感到困惑。

原因與解決方案

根本原因在於 WordPress 的引導過程。當 WordPress 的多站點功能處於活動狀態時,它會啟動自動轉義。要解決此問題,請在 WordPress 引導之前添加以下程式碼:

<code class="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);</code>

此程式碼將在自動轉義發生之前從 WordPress 的請求物件中移除斜線。

替代方法

雖然stripslashes_deep 有效解決了該問題,但請考慮以下替代方法:

  • 使用「本地剝離」:僅從特定POST 資料元素中剝離斜線。例如: $post = array_map('stripslashes_deep', $_POST);
  • 停用WordPress的自動轉義:新增define('AUTOMATIC_ESCAPING_DISAB', true); (wp-config.php)。這會禁用自動轉義,但應謹慎使用。

以上是為什麼 WordPress 在停用 Magic Quotes 後仍然會轉義資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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