ホームページ >バックエンド開発 >PHPチュートリアル >PHP における Magic_quotes_gpc の動的終了の問題は無効です_PHP チュートリアル

PHP における Magic_quotes_gpc の動的終了の問題は無効です_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-21 14:58:46868ブラウズ

昨日オンライン プロジェクトを閲覧していると、問題を発見しました。次のようなテキスト出力の引用符の前に余分なバックスラッシュがあります。 引用符内の「バックスラッシュ」が多すぎます

ページに表示された結果から判断すると、PHPのmagic_quotes_gpc設定がオンになっていると推測されます。次にプログラムをチェックしたところ、エントリ ファイル内でこの設定が動的に閉じられていることがわかりました。

ini_set('magic_quotes_gpc', 'オフ');

なぜ効果がなかったのですか?

いくつかの検索の後、同僚が理由を見つけるのを手伝ってくれました。この構成を動的に変更する前にリクエストが解析されていたため、その変更は現在のリクエストには反映されなかったことがわかりました。

詳細については、次の Web ページを参照してください。同僚も同じ問題に遭遇しました。

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

magic_quotes_gpc は、PHP スクリプトが制御を取得する前にリクエストを解析するときに適用されるため、スクリプト内でこの設定を変更できますが、効果はありません。 サーバー上に複数のプロジェクトが存在することを考慮し、他のプロジェクトに影響を与えないようにphp.iniの設定を直接変更することはできないため、

Molu vs Memories

が書いたコードを使用して再帰的に処理します。 GPC コンテンツ: if (ini_get('magic_quotes_gpc')) {functiontripslashesRecursive(array $array)

{
foreach ($array as $k => $v) {
if (is_string($v)) {
$array[$ k] = ストリップスラッシュ($v);
} else if (is_array($v)) {
$array[$k] = ストリップスラッシュRecursive($v);
}
}
return $array;
}

$_GET = ストリップスラッシュ再帰的($_GET);
$_POST = ストリップスラッシュ再帰的($_POST);
}

http://www.bkjia.com/PHPjc/363784.html

tru​​ehttp://www.bkjia.com/PHPjc/363784.html技術記事昨日オンライン プロジェクトを閲覧していて、問題を発見しました。一部のテキスト出力では、引用符の前に余分なバックスラッシュがあります。たとえば、ページに表示された結果から判断すると、引用符内のバックスラッシュが多すぎます。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。