Heim > Backend-Entwicklung > PHP-Tutorial > Warum ist magic_quotes_gpc dynamisch geschlossen ungültig?

Warum ist magic_quotes_gpc dynamisch geschlossen ungültig?

小云云
Freigeben: 2023-03-20 12:08:01
Original
1415 Leute haben es durchsucht

Dieser Artikel beschreibt hauptsächlich das Problem des ungültigen dynamischen Schließens von magic_quotes_gpc in PHP. Ich hoffe, er kann Ihnen bei der Lösung dieser Art von Problem helfen.

Beim Durchsuchen von Online-Projekten habe ich gestern ein Problem festgestellt: In einigen Textausgaben steht vor den Anführungszeichen ein zusätzlicher Backslash, zum Beispiel:

Die Anführungszeichen enthalten zu viele „Backslashes“.

Anhand der auf der Seite angezeigten Ergebnisse lässt sich vermuten, dass die magic_quotes_gpc-Konfiguration in PHP aktiviert ist. Dann habe ich das Programm überprüft und festgestellt, dass in der Eintragsdatei diese Konfiguration dynamisch geschlossen wurde:

ini_set('magic_quotes_gpc', 'Off');

Warum wurde sie nicht wirksam? ?

Nach einigem Suchen haben mir meine Kollegen geholfen, den Grund zu finden. Es stellte sich heraus, dass die Anfrage analysiert wurde, bevor ich die Konfiguration dynamisch geändert hatte, sodass die Änderung für die aktuelle Anfrage nicht wirksam wurde.

Einzelheiten finden Sie auf der folgenden Webseite. Ein Kollege ist ebenfalls auf das gleiche Problem gestoßen:

https://bugs.php.net/bug.php?id=32867

magic_quotes_gpc wird beim Parsen der Anfrage angewendet, bevor Ihr PHP-Skript die Kontrolle übernimmt. Sie können diese Einstellung also in Ihrem Skript zwar ändern, sie hat jedoch keine Auswirkung.

Vorausgesetzt, dass auf dem Server mehrere Projekte vorhanden sind, der Reihe nach Um andere Projekte nicht zu beeinträchtigen, können wir die Konfiguration von php.ini nicht direkt ändern. Daher haben wir den von Molu vs. Zhuihui geschriebenen Code verwendet, um den GPC-Inhalt rekursiv zu verarbeiten:

if (ini_get('magic_quotes_gpc')) {
function stripslashesRecursive(array $array)
{
foreach ($array as $k => $v) {
if (is_string($v)) {
$array[$k] = stripslashes($v);
} else if (is_array($v)) {
$array[$k] = stripslashesRecursive($v);
}
}
return $array;
}
$_GET = stripslashesRecursive($_GET);
$_POST = stripslashesRecursive($_POST);
}
Nach dem Login kopieren

Verwandte Empfehlungen:

php-Anweisungen zur Verwendung der Funktion get_magic_quotes_gpc()

In Bezug auf Probleme mit dem automatischen Escapezeichen von PHP, die historischen Probleme von magic_quotes_gpc in der Konfiguration,

Einführung in die Verwendung der PHP-Funktion get_magic_quotes_gpc

Das obige ist der detaillierte Inhalt vonWarum ist magic_quotes_gpc dynamisch geschlossen ungültig?. 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