Warum das Escapen bei $_POST-Variablen in PHP passiert
Frage:
Warum sind $ _POST-Variablen werden in einem PHP-Skript maskiert, wenn Daten von einer AJAX-POST-Anfrage empfangen werden? Dies geschieht auf einem Produktionsserver, auf dem PHP 5.2.12 unter Linux ausgeführt wird, aber nicht auf einem lokalen Server, auf dem PHP 5.3.1 unter Windows ausgeführt wird.
Antwort:
Magische Zitate , insbesondere magic_quotes_gpc, sind wahrscheinlich auf dem Linux-Server aktiviert.
Erklärung:
Magische Anführungszeichen maskieren bestimmte Zeichen automatisch (einfache und doppelte Anführungszeichen, Backslashes und Nullbytes) in Daten, die von externen Quellen empfangen werden, einschließlich POST-Anfragen. Wenn diese Anführungszeichen aktiviert sind, sollten Sie sie deaktivieren, da sie sich darauf auswirken, wie POST-Variablen referenziert werden.
Mögliche Lösungen:
<code class="php">if (get_magic_quotes_gpc()) { $my_post_var = stripslashes($_POST["my_post_var"]); }</code>
Hinweis: Diese Lösung entfernt Schrägstriche aus allen POST-Daten. Verwenden Sie sie daher selektiv auf Ihre Anforderungen.
Das obige ist der detaillierte Inhalt vonWarum werden meine $_POST-Variablen auf meinem Produktionsserver maskiert, nicht jedoch auf meinem lokalen Server?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!