Superglobale Variablen sind in PHP globale Variablen, die überall im Skript verwendet werden können. Diese Variablen müssen zur Verwendung nicht deklariert werden, sie sind vordefiniert und bereits von PHP initialisiert.
Zu den gängigen superglobalen PHP-Variablen gehören $_GET, $_POST, $_COOKIE, $_SESSION, $_SERVER usw.
Der Vorteil der Verwendung superglobaler Variablen besteht darin, dass Sie die vom Formular übermittelten Daten, die Browserinformationen des Benutzers usw. problemlos abrufen können. Bei der Verwendung können jedoch einige Probleme auftreten, wie zum Beispiel:
- Undefinierte Variable: Wenn Sie versuchen, eine undefinierte superglobale Variable zu verwenden, wird ein Fehler „Undefinierte Variable“ ausgegeben.
- Variable ist leer: Wenn eine superglobale Variable keine Daten empfängt, ist sie leer und die Verwendung dieser Variablen führt ebenfalls zu einem Fehler.
- Variablen wurden manipuliert: Beim Senden von Formulardaten kann ein Angreifer superglobale Variablen manipulieren, was zu Sicherheitslücken im Programm führt.
Um superglobale Variablenfehler zu vermeiden, können wir folgende Maßnahmen ergreifen:
- Variablenprüfung durchführen
#🎜 🎜#Bevor Sie eine superglobale Variable verwenden, prüfen Sie, ob diese definiert wurde und nicht leer ist. Dies kann durch die Funktionen isset() und empty() erreicht werden.
Zum Beispiel kann der folgende Code prüfen, ob die Variable $_GET einen Parameter namens „id“ enthält:
if(isset($_GET['id']) && !empty($_GET['id'])) {
// 处理 $_GET['id'] 变量
}
Datenfilterung durchführen- # 🎜🎜#
Bei der Verwendung superglobaler Variablen müssen Sie daran denken, keine ungefilterten Daten direkt an die Datenbank oder andere sensible Vorgänge zu übergeben, da es sonst zu Sicherheitsproblemen wie SQL-Injection kommen kann. Sie können die integrierten Filterfunktionen von PHP verwenden, z. B. addslashes(), htmlentities() usw.
Zum Beispiel kann der folgende Code die Variable $_POST mithilfe der Funktion addslashes() filtern:
$username = addslashes($_POST['username']);
$password = addslashes($_POST['password']);
Verwenden des HTTPS-Protokolls
#🎜🎜 ##🎜 🎜#Wenn superglobale Variablen zur Übertragung vertraulicher Informationen verwendet werden, wird empfohlen, das HTTPS-Protokoll für die verschlüsselte Übertragung zu verwenden, um das Problem der Datenmanipulation oder des Datendiebstahls zu lösen. Sie können dies tun, indem Sie Ihre Website für die Verwendung eines SSL/TLS-Zertifikats konfigurieren. -
Strikten Modus aktivieren
In PHP 7 wurde eine neue Funktion namens Strikter Modus (strict_types) eingeführt. Nach der Aktivierung des strikten Modus prüft PHP die Datentypen strenger und reduziert so Fehler, die durch Typkonvertierungsfehler verursacht werden. Der strikte Modus kann aktiviert werden, indem der folgende Code in den Kopf der PHP-Datei eingefügt wird: declare(strict_types=1);
Kurz gesagt: Achten Sie bei der Verwendung superglobaler PHP-Variablen unbedingt auf Sicherheit und Konsistenz. Führen Sie eine strenge Datenfilterung und -validierung durch und befolgen Sie Best Practices zum Schutz von Programm- und Benutzerdaten.
Das obige ist der detaillierte Inhalt vonSo vermeiden Sie PHP-Super-Global-Variablenfehler. 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