Heim >Backend-Entwicklung >PHP-Tutorial >Einführung in die Verwendung der PHP-Funktion get_magic_quotes_gpc()

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

怪我咯
怪我咯Original
2017-05-22 11:21:133103Durchsuche

Was macht die PHP-Funktion get_magic_quotes_gpc()?

Als ich zuvor den Unterschied zwischen der php-Stripslashes()-Funktion und der addslashes()-Funktion erklärt habe, habe ich die get_magic_quotes_gpc()-Funktion erwähnt. Was macht diese Funktion also? In diesem Kapitel werden einige Beschreibungen der Funktion get_magic_quotes_gpc()

und der damit verbundenen Themen vorgestellt.

Die Funktion get_magic_quotes_gpc wird verwendet, um zu bestimmen, ob den vom Benutzer bereitgestellten Daten Schrägstriche hinzugefügt werden. Dies befindet sich in der Konfigurationsdatei php.ini. Die Funktion get_magic_quotes_gpc() wird unten ausführlich vorgestellt.

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 ruft die Variable magic_quotes_gpc der PHP-Umgebung ab Konfigurationswert (GPC, Get/Post/Cookie). 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 ' (einfache Anführungszeichen), " (doppelte Anführungszeichen), (Backslashes) und Nullzeichen automatisch in Überlaufzeichen mit Backslashes umgewandelt.

in der PHP-Konfigurationsdatei gibt es einen Booleschen Wert Einstellung magic_quotes_runtime. Wenn sie aktiviert ist, fügen die meisten PHP-Funktionen automatisch Backslashes zu Überlaufzeichen in von außen importierten Daten hinzu (einschließlich Datenbanken oder Dateien). Da es in der Zeichenfolge mehrere Backslashes gibt, müssen Sie set_magic_quotes_runtime() und get_magic_quotes_runtime() verwenden, um den magic_quotes_runtime-Status in der Datei php.ini festzulegen und zu erkennen, damit Ihr Programm unabhängig von den Servereinstellungen normal ausgeführt wird , können Sie get_magic_quotes_runtime verwenden, um den Status der Einstellung zu Beginn des Programms zu ermitteln und zu bestimmen, ob diese manuell verarbeitet werden soll, oder set_magic_quotes_runtime(0) zu Beginn verwenden (oder wenn automatisches Escapen nicht erforderlich ist).

Magic_quotes_gpc legt fest, ob in den von GPC gesendeten Daten (Get, Post, Cookie) automatisch Backslashes zu „“ hinzugefügt werden sollen. 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 hinzuzufügen. Diese Zeichen sind einfache Anführungszeichen ('), doppelte Anführungszeichen ("), Backslash () und NUL (NULL-Zeichen).

PS: Veraltet seit PHP 5.3.0 Und wird es auch sein Diese Option wurde in PHP6 entfernt und die gesamte Programmierung muss unter magic_quotes_gpc=Off ausgeführt werden. Wenn die Daten des Benutzers in einer solchen Umgebung nicht maskiert werden, hat dies nicht nur Auswirkungen auf das Programm. Es handelt sich lediglich um einen Fehler. Verlassen Sie sich daher von nun an nicht mehr darauf, dass diese Einstellung aktiviert ist, da sonst Ihr Server auf PHP6 aktualisiert werden muss und Ihr Programm nicht ordnungsgemäß funktioniert >Beispiel

php ermittelt, ob die Funktion get_magic_quotes_gpc aktiviert ist, sodass wir uns für die Verwendung der Addslashes-Funktion

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

Der Code lautet wie folgt
function SQLString($c, $t){
 $c=(!get_magic_quotes_gpc())?addslashes($c):$c;
 switch($t){
  case 'text':
   $c=($c!='')?"'".$c."'":'NULL';
   break;
  case 'search':
   $c="'%%".$c."%%'";
   break;
  case 'int':
   $c=($c!='')?intval($c):'0';
   break;
 }
 return $c;
}

Zusammenfassung: Die Funktion von get_magic_quotes_gpc() besteht darin, den Wert abzurufen der Umgebungsvariablen magic_quotes_gpc wurde in PHP6 gelöscht, daher existiert diese Funktion nicht mehr in PHP6

[Empfehlungen für verwandte Artikel]:
<?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);
?>

php addslashes()-Funktion und stripeslashes((). )Detaillierte Erläuterung der Funktionsbeispiele

2.

Detaillierte Erläuterung des Unterschieds zwischen der PHP-Funktion „stripslashes()“ und der Funktion „addslashes()“

Das obige ist der detaillierte Inhalt vonEinführung in die 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