ホームページ >バックエンド開発 >PHPチュートリアル >magic_quotes_gpc と magic_quotes_runtime_PHP チュートリアルに基づく違いと使い方の紹介
データベースに書き込みたいデータに「 」などの文字が含まれているが、除外したくない場合に非常に便利です。
などの文字がこれらの文字の前に自動的に追加されます。中国の広大な土地と豊富な資源"笑"
China\地大物博"笑"
は、set_maginc_quotes_runtime(0)を使用してオフにすることができます。もちろん、php.iniで直接設定することもできます
get_magic_quotes_runtime()は、PHPの値を取得します。環境変数 magic_quotes_runtime
magic_quotes_gpc がオンになっていると、主にすべての GET、POST、COOKIE データに対してaddlashes() が自動的に実行されます。これは二重レベルのエスケープを引き起こすため、magic_quotes_gpc によってエスケープされた文字列に対しては使用しないでください。この状況に遭遇した場合は、 get_magic_quotes_gpc() 関数を使用して
この 2 つは異なります
。
set_magic_quotes_runtime(1) はオンにすることを意味し、set_magic_quotes_runtime(0) はオフにすることを意味します。 set_magic_quotes_runtime(1) が使用されると、データベースから、または fread などの関数を通じて読み取られたテキストは、オーバーフローを防ぐために ' " とバックスラッシュを自動的にエスケープします。これは、データベースからデータを転送するときに非常に便利です。ただし、一般的には、これを有効にする必要があります。オフにすると、データベースから読み取られたデータに一重引用符、二重引用符、バックスラッシュが追加され、Discuz や PHPWind などのパブリック ファイルで異常な表示が発生します。 set_magic_quotes_runtime(0) をヘッダーに追加して、magic_quotes_runtime を強制的に閉じます。
magic_quotes_gpc
アクションの範囲: WEB クライアント サーバー;
アクションの時間: たとえば、スクリプトの実行時にリクエストが開始されます。
magic_quotes_runtime
アクションの範囲: ファイルから読み取られたデータ、exec() の実行結果、または SQL クエリから取得されたデータ。
アクションの時間: スクリプトが実行状態で生成されたデータにアクセスするたび。
それで
magic_quotes_gpc の設定値は、Get/Post/Cookies を通じて取得されるデータに影響します。
magic_quotes_runtime の設定値は、ファイルから読み取られるデータ、またはmagic_quotes_gpc が渡すデータに影響します。通常、データをデータベースに保存する前にエスケープする必要があります。
magic_quotes_gpc をコード内で動的にオンまたはオフにするには、php.ini に移動する必要があります。
コード内で get_magic_quotes_gpc を使用して、magic_quotes_gpc のステータスを取得できます。
magic_quotes_gpc がオフの場合、データを手動で追加する必要があります。コードは次のとおりです。
++++++++++++++++++++++++++++++++++++++++++++++ ++
経験の概要:
1. GPC の場合、システムで magic_quotes_gpc がオンになっているかどうか (つまり、php.ini で magic_quotes_gpc = On) に関係なく、get、post、cookie の内容をエスケープするために、一律に magic_quotes_gpc をオンにします。 。動作は以下の通りです。
(uchomeシステムより抜粋)
または
sourceprint を表示しますか?
if (phpversion() set_magic_quotes_runtime(0)
}
;
www.bkjia.com
true
http://www.bkjia.com/PHPjc/326823.html
技術記事
データベースに書き込むデータに「 」のような文字が含まれていて、それらを除外したくない場合に非常に便利です。中国語などの文字の前に自動的に追加されます...