Heim  >  Artikel  >  Backend-Entwicklung  >  Warum werden meine $_POST-Variablen auf meinem Produktionsserver maskiert, nicht jedoch auf meinem lokalen Server?

Warum werden meine $_POST-Variablen auf meinem Produktionsserver maskiert, nicht jedoch auf meinem lokalen Server?

Barbara Streisand
Barbara StreisandOriginal
2024-10-27 10:01:03470Durchsuche

Why are My $_POST Variables Escaped on My Production Server But Not My Local Server?

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:

  • Magische Anführungszeichen deaktivieren in php.ini: Deaktivieren Sie nach Möglichkeit magische Anführungszeichen in der php.ini-Konfigurationsdatei.
  • Verwenden Sie stripeslashes(): Überprüfen Sie mit get_magic_quotes_gpc(), ob magische Anführungszeichen aktiviert sind. Wenn dies der Fall ist, verwenden Sie Stripslashes() für alle aus POST-Variablen abgerufenen Daten:
<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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn