Heim  >  Artikel  >  Backend-Entwicklung  >  Anweisungen zur Verwendung der PHP-Funktion get_magic_quotes_gpc()

Anweisungen zur Verwendung der PHP-Funktion get_magic_quotes_gpc()

怪我咯
怪我咯Original
2017-07-06 11:12:421655Durchsuche

Die Funktion

get_magic_quotes_gpc wird verwendet, um zu bestimmen, ob Schrägstriche zu den vom Benutzer bereitgestellten Daten hinzugefügt werden sollen. Diese befindet sich in der php.iniKonfigurationsdatei. In diesem Artikel wird get_magic_quotes_gpc() vorgestellt. Funktionsbeschreibung. Schauen wir uns den Editor unten an

Die Funktion get_magic_quotes_gpc wird verwendet, um zu bestimmen, ob den vom Benutzer bereitgestellten Daten Schrägstriche hinzugefügt werden sollen. Dies ist in der Konfigurationsdatei php.ini enthalten Beschreibung.

Einführung in die Funktion get_magic_quotes_gpc

Rufen Sie den Wert der PHP-Umgebungsvariablen magic_quotes_gpc ab, bei der es sich um eine PHP-Systemfunktion handelt.

Syntax: long get_magic_quotes_gpc(void);

Rückgabewert: long integer

Diese Funktion erhält den Wert der Variablen magic_quotes_gpc (GPC, Get/Post/Cookie) von die PHP-Umgebungskonfiguration. Die Rückgabe von 0 bedeutet das Ausschalten dieser Funktion; die Rückgabe von 1 bedeutet das Einschalten dieser Funktion.

Wenn magic_quotes_gpc aktiviert ist, werden alle ' (einfaches Anführungszeichen), " (doppeltes Anführungszeichen), (Backslash) und Nullzeichen automatisch in Überlaufzeichen umgewandelt, die einen Backslash enthalten.

magic_quotes_gpc legt fest, ob um automatisch einen Backslash zum „“ in den von GPC gesendeten Daten (get, post, cookie) hinzuzufügen. Sie können get_magic_quotes_gpc() verwenden, um Systemeinstellungen zu erkennen.

Wenn diese Einstellung nicht aktiviert ist, können Sie sie mit der Funktion addslashes() hinzufügen. Ihre Funktion besteht darin, bei Bedarf in Datenbankabfrageanweisungen Backslashes vor bestimmten Zeichen hinzuzufügen.

Diese Zeichen sind einfache Anführungszeichen ('), doppelte Anführungszeichen ("), Backslash () und NUL (NULL-Zeichen).

Standardmäßig ist die PHP-Direktive magic_quotes_gpc aktiviert, hauptsächlich um Führen Sie addslashes() automatisch für alle GET-, POST- und COOKIE-Daten aus.

Verwenden Sie addslashes() nicht für Zeichenfolgen, die von magic_quotes_gpc maskiert wurden, da dies zu Escapezeichen auf zwei Ebenen führt verwenden Sie die Funktion get_magic_quotes_gpc() zur Erkennung

Beispiel

Die richtige Art und Weise, get_magic_quotes_gpc() zu verwenden, um Datenbankangriffe zu verhindern

Der Code lautet wie folgt

<?php
function check_input($value)
{
// 去除斜杠
if (get_magic_quotes_gpc())
{
$value = stripslashes($value);
}
// 如果不是数字则加引号
if (!is_numeric($value))
{
$value = “‘” . mysql_real_escape_string($value) . “‘”;
}
return $value;
}
$con = mysql_connect(“localhost”, “hello”, “321″);
if (!$con)
{
die(‘Could not connect: ‘ . mysql_error());
}
// 进行安全的 SQL
$user = check_input($_POST[&#39;user&#39;]);
$pwd = check_input($_POST[&#39;pwd&#39;]);
$sql = “SELECT * FROM users WHERE
user=$user AND password=$pwd”;
mysql_query($sql);
mysql_close($con);
?>

Die Zusammenfassung lautet wie folgt:

1 magic_quotes_gpc=on,

Wir können keine

Addslashes()- und Stripslashes()-Operationen für die Zeichenfolgendateneingabe und -ausgabe aus der Datenbank ausführen, und die Daten werden normal angezeigt

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

, müssen Sie bei der Ausgabe „stripslashes()“ verwenden, um überschüssige Backslashes zu entfernen . Für magic_quotes_gpc=. Im Fall von off

müssen Sie addslashes() verwenden, um die Eingabedaten zu verarbeiten, aber Sie müssen Stripslashes() nicht verwenden, um die Ausgabe zu formatieren

weil addslashes() Die Backslashes werden nicht zusammen in die Datenbank geschrieben, sondern helfen MySQL nur dabei, die Ausführung der SQL-Anweisung abzuschließen

Das obige ist der detaillierte Inhalt vonAnweisungen zur Verwendung der PHP-Funktion get_magic_quotes_gpc(). 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