Heim > Artikel > Backend-Entwicklung > Warum ist magic_quotes_gpc dynamisch geschlossen ungültig?
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); }
Verwandte Empfehlungen:
php-Anweisungen zur Verwendung der Funktion get_magic_quotes_gpc()
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!