Heim > Backend-Entwicklung > PHP-Problem > So fügen Sie in eine Datenbank ein und führen eine Escape-Operation in PHP durch

So fügen Sie in eine Datenbank ein und führen eine Escape-Operation in PHP durch

藏色散人
Freigeben: 2023-03-13 09:12:01
Original
3197 Leute haben es durchsucht

So fügen Sie eine Datenbank ein und führen einen Escape-Vorgang in PHP aus: 1. Legen Sie das Element magic_quotes_gpc fest. 2. Aktivieren Sie das Element magic_quotes_runtime. 3. Aktivieren Sie das Element magic_quotes_sybase, um das Escape automatisch zu realisieren.

So fügen Sie in eine Datenbank ein und führen eine Escape-Operation in PHP durch

Die Betriebsumgebung dieses Artikels: Windows 7-System, PHP-Version 7.1, DELL G3-Computer

Wie implementiert PHP das Einfügen in die Datenbank und das Durchführen von Escape-Operationen?

php Spezielle Zeichenfolgenverarbeitung beim Schreiben in die Datenbank (wann Sonderzeichen maskiert werden sollen)

Bei der Verarbeitung von MySQL- und GET- und POST-Daten ist es häufig erforderlich, die Anführungszeichen der Daten zu maskieren.

Es gibt drei Einstellungen in PHP, die ' (einfaches Anführungszeichen), " (doppeltes Anführungszeichen), (Backslash) und NULL-Zeichen automatisch konvertieren können.

PHP nennt es magische Anführungszeichen. Diese drei Einstellungen sind

magic_quotes_gpc

Betrifft HTTP-Anforderungsdaten (GET, POST und COOKIE). Der Standardwert in PHP ist aktiviert.

Wenn dies aktiviert ist, werden die über GET, POST und COOKIE übergebenen Daten automatisch geändert .

Zum Beispiel: test.php?id=abc'de"f

echo $_GET['id']; # Sie erhalten abc'de"f

magic_quotes_gpc=On; Dies ist zum Schreiben der Datenbank aktiviert hat keine Auswirkung. Wenn beispielsweise das obige $_GET['id'] in die Datenbank geschrieben wird, ist es immer noch abc'de"f,

Im Gegenteil, wenn magic_quotes_gpc=Off; dann müssen die Zeichen Anführungszeichen haben ( Unabhängig von einfachen Anführungszeichen oder doppelten Anführungszeichen wird das direkte Schreiben in MySQL direkt leer. Wenn Sie es jedoch in das Dokument statt in MySQL schreiben, wird es direkt leer. Dann ist es abc'de"f

magic_quotes_runtime

Wenn es aktiviert ist, werden die zurückgegebenen Daten bei den meisten Funktionen, die Daten aus externen Quellen abrufen und zurückgeben, einschließlich aus Datenbanken und Textdateien, in einen Backslash umgewandelt. Definition. Diese Option kann zur Laufzeit geändert werden.

magic_quotes_sybase

Wenn aktiviert, werden einfache Anführungszeichen anstelle von Backslashes überschrieben, wenn beide Optionen gleichzeitig aktiviert sind Dabei werden einfache Anführungszeichen maskiert. Doppelte Anführungszeichen, Backslashes und NULL-Zeichen werden nicht maskiert.

我表单内容本来是:<img alt=”" width=”400″ height=”300″ src=”/Upfiles/201105/images/1306657040.jpg” />
<img alt=\”\” width=\”400\” height=\”300\” src=\”/Upfiles/201105/images/1306657040.jpg\” />
Nach dem Login kopieren

Gegenmaßnahme 1: Ändern Sie die php.ini-Datei (ich werde nicht auf die Methode zum Ändern von php.ini eingehen, Sie können sie googeln)

Gegenmaßnahme 2: Brechen Sie das Escape ab

Schritt 1: Suchen Sie die Datei, die Sie übermittelt haben Daten wie $_POST['content'] ändern Sie in $content=stripslashes($_POST['content']);

Schritt 2: Ersetzen Sie in Zukunft $POST['content'] durch $ content

Schritt 3: An die Datenbank senden, der Datenbankspeicher ist immer noch normal: “"

““(Sie sollten wissen, wie man das löst, oder? ? Wie wäre es, wenn ich weiter schweife)

Schritt 4: Verwenden Sie stripeslashes(), um den aus der Datenbank gelesenen Inhalt zu filtern.

stripslashes() Diese Funktion entfernt die Backslashes, die durch die Funktion addslashes() hinzugefügt wurden. Wird verwendet, um die aus der Datenbank oder dem HTML-Formular abgerufenen Daten zu bereinigen.

Dann können Sie die folgenden Einstellungen vornehmen, um dies zu verhindern:

Setzen Sie magic_quotes_gpc = Off in php.ini)

Zusammenfassung wie folgt:

1. Für den Fall von magic_quotes_gpc=on,

Wir können

nicht tun Zeichenfolgendaten der Eingabe- und Ausgabedatenbanken

Bei den Operationen von addslashes() und stripeslashes() werden die Daten normal angezeigt

Wenn Sie zu diesem Zeitpunkt addslashes() für die Eingabedaten ausführen,

dann müssen Sie verwenden

2. Im Fall von magic_quotes_gpc=off muss „addslashes()“ zum Verarbeiten der Eingabedaten verwendet werden, es ist jedoch nicht erforderlich, „stripslashes()“ zum Formatieren der Ausgabe zu verwenden

weil addslashes() den Backslash nicht konvertiert. Das gemeinsame Schreiben in die Datenbank hilft MySQL nur dabei, die Ausführung von SQL-Anweisungen abzuschließen.

Volltext: http://blog.csdn.net/qinglianluan/article/details/26272689

Einführung in die Verwendung der PHP-Funktion get_magic_quotes_gpc()

http://www.php100.com/html/php/hanshu/2013/0905/4689.html //Es kann so verstanden werden: Diese Funktion dient dazu, zu bestimmen, ob die Die Funktion „Escape-Sonderzeichen“ des Servers ist aktiviert

Empfohlenes Lernen: „

PHP-Video-Tutorial

Das obige ist der detaillierte Inhalt vonSo fügen Sie in eine Datenbank ein und führen eine Escape-Operation in PHP durch. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage