1

重複の可能性:
PHP、引用符をエスケープするのはなぜですか?

たとえば、入力フィールドにテキストを入力してから、それを表示したり、PHP mysqli 準備済みステートメントを使用して MySQL に保存しようとすると、一重引用符の前に余分なバックスラッシュが表示されます。

$name = $_POST['name'];
echo "name=($name)";

これは次のように出力されます: don\'t そして、MySQL に格納されたこの追加のバックスラッシュも取得します。

これを回避し、バックスラッシュを入力できるようにするにはどうすればよいですか?

よろしく、マグナス・ストランド

4

2 に答える 2

4

ストリップスラッシュの使用、

echo stripslashes("Who\'s Kai Jim?"); //Who's Kai Jim?
于 2012-09-21T13:07:20.023 に答える
1

php.iniファイルを開き、460行目(ほぼ)に移動して、魔法の引用符をオフにします。お気に入り

; Magic quotes for incoming GET/POST/Cookie data.
magic_quotes_gpc = Off

; Magic quotes for runtime-generated data, e.g. data from SQL, from exec(), etc.
magic_quotes_runtime = Off

Magic Quotesをオフにしておくことは、アプリケーションのセキュリティから始めるための良いテクニックです。魔法の引用は本質的に壊れています。これらはPHPスクリプトへの入力をサニタイズすることを目的としていましたが、その入力がどのように使用されるかを知らなければ、正しくサニタイズすることは不可能です。

魔法の引用に関するPHPのmanページは次のように同意しています。

"This feature has been DEPRECATED as of PHP 5.3.0 and REMOVED as of PHP 6.0.0. Relying on this feature is highly discouraged. Magic Quotes is a process that automagically escapes incoming data to the PHP script. It's preferred to code with magic quotes off and to instead escape the data at runtime, as needed."
于 2012-09-21T13:09:23.160 に答える