Heim > Datenbank > MySQL-Tutorial > Warum werden meine Anführungszeichen in PHP mit Backslashes maskiert und wie kann ich das beheben?

Warum werden meine Anführungszeichen in PHP mit Backslashes maskiert und wie kann ich das beheben?

Barbara Streisand
Freigeben: 2024-12-07 17:38:12
Original
581 Leute haben es durchsucht

Why Are My Quotes Escaped with Backslashes in PHP, and How Can I Fix It?

Problem „Schrägstrich vor jedem Anführungszeichen“ erneut betrachtet

Sie sind auf ein Problem gestoßen, bei dem jedes doppelte Anführungszeichen in einer von Ihnen verarbeiteten Zeichenfolge mit einem Backslash maskiert wird. Nach einigen Nachforschungen haben Sie festgestellt, dass dies an einer Serverkonfiguration namens Magic Quotes liegt.

Was sind Magic Quotes?

Magic Quotes ist eine Einstellung in PHP Dadurch werden bestimmte Zeichen, einschließlich einfacher und doppelter Anführungszeichen, in Formulardaten und anderen Eingaben automatisch maskiert. Sein Zweck besteht darin, SQL-Injection und andere Sicherheitslücken zu verhindern.

Lösung mit Stripslashes()

Um dieses Problem zu beheben, verwenden Sie die Funktion Stripslashes(), um das hinzugefügte zu entfernen Backslashes:

if (get_magic_quotes_gpc()) {
    $text = stripslashes($text);
}
Nach dem Login kopieren

Dadurch werden die zusätzlichen Schrägstriche aus $text entfernt, sodass Sie mit den Daten als arbeiten können erwartet.

Magische Zitate deaktivieren?

Ob Sie magische Zitate deaktivieren sollten oder nicht, hängt von Ihrer spezifischen Situation und Risikotoleranz ab:

  • Sicherheit: Wenn Sie über eine gut geschriebene Anwendung verfügen, die Best Practices zur Eingabevalidierung und zum Schutz befolgt, führt die Deaktivierung von magischen Anführungszeichen möglicherweise nicht dazu erhebliche Sicherheitsrisiken.
  • Kompatibilität: Das Deaktivieren von magischen Anführungszeichen kann zu Kompatibilitätsproblemen mit älterem PHP-Code oder Bibliotheken von Drittanbietern führen, die darauf angewiesen sind.
  • Andere Überlegungen :Magische Anführungszeichen können auch das Verhalten von Funktionen wie htmlspecialchars() und htmlentities() beeinflussen. Bevor Sie eine Entscheidung treffen, sollten Sie prüfen, wie Ihre Anwendung mit Escape und Codierung umgeht.

Wenn Sie sich entscheiden, magische Anführungszeichen zu deaktivieren, stellen Sie sicher, dass Sie Ihre Anwendung sorgfältig testen und mögliche Sicherheitsbedenken berücksichtigen.

Das obige ist der detaillierte Inhalt vonWarum werden meine Anführungszeichen in PHP mit Backslashes maskiert und wie kann ich das beheben?. 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