Heim > Artikel > Backend-Entwicklung > So fügen Sie in eine Datenbank ein und führen eine Escape-Operation in PHP durch
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.
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_runtimeWenn 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_sybaseWenn 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\” />
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: 6801aaf2b9fc614dea8e09cdccd1b1b2(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 AusgabedatenbankenBei 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!