Warum werden meine AJAX POST-Variablen auf dem Produktionsserver maskiert, aber nicht auf dem lokalen Server?

Barbara Streisand
Freigeben: 2024-10-26 13:32:03
Original
513 Leute haben es durchsucht

Why are My AJAX POST Variables Escaped on the Production Server But Not on the Local Server?

Warum werden $_POST-Variablen in PHP maskiert?

Problem:

In PHP werden die $_POST-Variablen von empfangen AJAX POST-Anfragen werden auf einem Produktionsserver maskiert, während sie auf einem lokalen Server intakt bleiben. Auf dem lokalen Server läuft PHP 5.3.1 unter Windows, während auf dem Produktionsserver PHP 5.2.12 unter Linux läuft.

Grund:

Die Diskrepanz zwischen den beiden Servern ist wahrscheinlich aufgrund der Verwendung von magischen Anführungszeichen auf dem Produktionsserver.

Magische Anführungszeichen:

Magische Anführungszeichen sind eine veraltete Funktion in PHP, die bestimmte Zeichen in $_GET automatisch maskiert , $_POST und $_COOKIE-Variablen zum Schutz vor SQL-Injection und anderen Angriffen. Zu den Escape-Zeichen gehören:

  • Einfache Anführungszeichen (')
  • Doppelte Anführungszeichen (")
  • Backslashes ()
  • Nullzeichen (NUL)

Lösung:

Um das Problem zu beheben und ein konsistentes Verhalten auf beiden Servern sicherzustellen, können Sie Magic Quotes auf dem Produktionsserver deaktivieren. Dies ist entweder möglich global in php.ini oder pro Skript mit set_magic_quotes_runtime().

Wenn das Deaktivieren von magischen Anführungszeichen nicht möglich ist, können Sie die Schrägstriche mithilfe der Funktion „stripslashes()“ für alle von Ihnen abgerufenen POST-Daten manuell entfernen:

<code class="php">if (get_magic_quotes_gpc()) {
    $my_post_var = stripslashes($_POST["my_post_var"]);
}</code>
Nach dem Login kopieren

Durch das Deaktivieren oder entsprechende Behandeln magischer Anführungszeichen können Sie sicherstellen, dass $_POST-Variablen auf dem Produktionsserver nicht maskiert werden, sodass die AJAX POST-Anfragen ordnungsgemäß funktionieren.

Das obige ist der detaillierte Inhalt vonWarum werden meine AJAX POST-Variablen auf dem Produktionsserver maskiert, aber nicht auf dem lokalen Server?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!