0

私のPHPページはURLのパラメータを受け入れています。このパラメーターは、次のように変数に割り当てられています。

$msg = $_REQUEST["msg"];

リクエストがHTTPWebサイトに送信されると、パラメーターはとして送信されますが"hello'"PHP上記の変数に到達すると、パラメーターはになり"hello\'"ます。

バックスラッシュが挿入されているのはなぜですか?また、何が挿入されているのですか?Webサーバーですか?どうすればこれを防ぐことができますか?

4

2 に答える 2

1

MagicQuotesはサーバー上で実行されています。stripslashes($ text)関数を使用する必要があります。

if(get_magic_quotes_gpc()) 
        $msg = stripslashes($_REQUEST["msg"]); 
   else $msg = $_REQUEST["msg"];
于 2013-03-11T07:58:58.740 に答える
-2

一重引用符が文字列の一部であるため、追加されています。エスケープされない場合 (これがバックスラッシュの意味です)、文字列定義がすぐに終了している可能性があります。

于 2013-03-11T07:54:29.520 に答える