Magic Quotes-Rätsel in WordPress
Obwohl PHPs Magic Quotes deaktiviert wurden (überprüft durch get_magic_quotes_gpc(), das 0 zurückgibt), werden POST-Daten immer noch maskiert . Dieses Problem tritt auf, wenn WordPress in eine Multisite-Installation integriert wird.
Die Rolle von WordPress beim automatischen Escapen
Die Ursache des automatischen Escapens liegt in der Codebasis von WordPress. Ein Fehler (Ticket Nr. 18322) in WordPress versucht, Eingaben zu bereinigen, selbst wenn magische Anführungszeichen deaktiviert sind. Die Lösung besteht darin, Schrägstriche explizit manuell aus Eingabedaten zu entfernen, wie im Codex vorgeschlagen.
Schrägstriche gründlich entfernen
Um das Problem zu beheben, entfernen Sie tiefe Schrägstriche aus superglobal Arrays ($_GET, $_POST, $_COOKIE, $_SERVER und $_REQUEST) mit der Funktion stripeslashes_deep():
<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>
Alternativer Ansatz
Alternativ, Erwägen Sie die lokale Verwendung von array_map() für bestimmte Arrays, anstatt Superglobals zu überschreiben:
<code class="php">$post = array_map('stripslashes_deep', $_POST);</code>
Überlegungen
Das Ändern von Superglobals wie oben gezeigt kann Auswirkungen auf Ihre Anwendung haben. Wenn der spezifische Kontext dies zulässt, sollten Sie eine selektive Entfernung in Betracht ziehen, um die Datenintegrität aufrechtzuerhalten. Weitere Informationen finden Sie in den bereitgestellten Referenzen.
Das obige ist der detaillierte Inhalt vonWarum entkommen meine WordPress-POST-Daten auch nach der Deaktivierung von Magic Quotes?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!