WordPress 中的魔術引號難題
儘管禁用了PHP 的魔術引號(透過get_magic_quotes_gpc() 返回資料驗證資料)被轉義。當 WordPress 整合到多站點安裝中時,就會出現此問題。
WordPress 在自動轉義中的角色
自動轉義的原因在於 WordPress 的程式碼庫。即使禁用了魔術引號,WordPress 中的錯誤(票號 #18322)也會嘗試清理輸入。解決方案是按照法典中的建議,手動從輸入資料中明確去除斜線。
深度去除斜線
要解決此問題,請從超全域深度移除斜線使用stripslashes_deep() 函數的陣列($_GET、$_POST、$ _COOKIE、$_SERVER 和$_REQUEST):
<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>
替代方法
或者,考慮在特定數組上本地使用array_map() 而不是覆寫超全域變數:
<code class="php">$post = array_map('stripslashes_deep', $_POST);</code>
注意事項
如上所示修改超全域變數可能會對您的應用程式產生影響。如果特定上下文允許,請考慮選擇性剝離以保持資料完整性。請參閱提供的參考資料以獲取更多見解。
以上是為什麼即使在禁用魔術引號後我的 WordPress POST 資料也會逃逸?的詳細內容。更多資訊請關注PHP中文網其他相關文章!