Bei der Arbeit mit POST-Daten in PHP, insbesondere innerhalb eines In der WordPress-Umgebung kann es trotz der Deaktivierung von magischen Anführungszeichen zu unerwarteten automatischen Escape-Verhalten kommen. Dieses verwirrende Problem tritt auf, wenn POST-Daten automatisch maskiert werden, obwohl magische Anführungszeichen angeblich deaktiviert sind (get_magic_quotes_gpc() gibt 0 zurück).
Bei näherer Betrachtung Wenn man sich mit dem Thema befasst, wird deutlich, dass WordPress eine entscheidende Rolle bei der Auslösung dieses automatischen Escape-Mechanismus spielt. Wenn WordPress im Rahmen des Initialisierungsprozesses Ihrer Anwendung gebootet wird, beeinträchtigt sein Code das natürliche Verhalten der magischen Anführungszeichen von PHP.
WordPress enthält Funktionen, die Anforderungsdaten, einschließlich POST-Daten, abfangen und bestimmte Vorgänge ausführen, darunter eine entkommt einfache Anführungszeichen ('). Dieses Verhalten gilt auch dann, wenn magische Anführungszeichen in php.ini deaktiviert sind.
Eine genauere Untersuchung der WordPress-Codebasis zeigt einen Fehler, der unter gemeldet wird das WordPress Core Trac-System (Ticket 18322). Dieses Problem hängt mit der falschen Verarbeitung von Anforderungsdaten zusammen, die unerwünschtes Escapen auslöst.
Glücklicherweise gibt es eine Lösung, um dieses Dilemma des automatischen Escapens zu lösen . Der WordPress-Codex empfiehlt die Verwendung der Funktion „stripslashes_deep()“, um das Escapezeichen für POST-Daten aufzuheben, bevor irgendwelche Vorgänge daran ausgeführt werden. Durch den Einsatz dieser Funktion können Sie die automatische Escape-Funktion von WordPress effektiv außer Kraft setzen und die Daten im Originalformat abrufen.
Um diese Lösung zu implementieren, fügen Sie den folgenden Code zu Ihrem PHP-Skript hinzu:
$_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);
Dieser Code entfernt Schrägstriche von allen Superglobals und stellt so sicher, dass POST-Daten beim Zugriff in PHP nicht automatisch maskiert werden.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3