ホームページ  >  記事  >  バックエンド開発  >  PHP引用の原理を素早くマスターするescape_PHPチュートリアル

PHP引用の原理を素早くマスターするescape_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-15 13:35:091018ブラウズ

私たちは

を使用しています。PHP には、' (一重引用符)、" (二重引用符)、(バックスラッシュ)、および NULL 文字を自動的に転送できる 3 つの設定があります。

PHP ではこれをマジック クオートと呼びます。この 3 つの設定は、

magic_quotes_gpc

は HTTP リクエスト データ (GET、POST、COOKIE) に影響します。PHP のデフォルト値はオンです。

magic_quotes_runtime

オンにすると、データベースやテキスト ファイルなどの外部ソースからデータを取得するほとんどの関数が影響を受けます。このオプションは実行時に変更できます。PHP のデフォルト値はオフです。

magic_quotes_sybase

オンにすると、バックスラッシュの代わりに一重引用符が使用され、magic_quotes_gpc が完全にオーバーライドされます。両方のオプションをオンにすると、一重引用符がエスケープされます。二重引用符、バックスラッシュ、および NULL 文字はエスケープされません。

特殊記号の自動 PHP 引用符エスケープを実装すると便利ですが、これによりプログラムの効率が低下し、プログラムの移植性が難しくなります。サーバーの ini 設定がわからない場合は、get_magic_quotes_gpc()、get_magic_quotes_runtime()、または ini_get() を呼び出してステータスを検出する必要もあります。

例:

<ol class="dp-xml">
<li class="alt"><span><span>if (!get_magic_quotes_gpc()) {  </span></span></li>
<li>
<span>$</span><span class="attribute">lastname</span><span> = </span><span class="attribute-value">addslashes<br></span><span>($_POST['lastname']);  </span>
</li>
<li class="alt"><span>} else {  </span></li>
<li>
<span>$</span><span class="attribute">lastname</span><span> = $_POST['lastname'];  </span>
</li>
<li class="alt"><span>}   </span></li>
</ol>
したがって、PHP のマジック クォートをオフにし、手動で addslashes()、stripslashes() を使用して、状況に応じて PHP クォート エスケープをエスケープしたりキャンセルしたりするのが最善です。 discuz から学び、設定ファイルに set_magic_quotes_runtime(0) を追加してエスケープをキャンセルできます。


http://www.bkjia.com/PHPjc/445921.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/445921.html技術記事 PHP の使用には、(一重引用符)、(二重引用符)、(バックスラッシュ)、および NULL 文字を自動的に転送できる 3 つの設定があります。 PHP ではこれをマジック クオートと呼んでいます。これら 3 つの設定は...
です。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。