1

PHPスクリプトでaddslashes()コマンドを使用しようとしました。ただし、この関数は、文字列内の特殊文字の前に backslash() を追加していません。

文字列内の特殊文字の前に \ を挿入する他の方法はありますか?

これが私のコードです:

 function save_params() {
 global $order_status;

 $args = func_get_args();
 foreach ($args as $k => $param)
  if (isset($_REQUEST[$param])) 
$order_status[$param] = mysql_real_escape_string("$_REQUEST[$param]");
  else
   $order_status[$param] = null;
   }

上記のコードから、タイトルはユーザーによって提供された文字列です。これには特殊文字が含まれている場合があります。特殊文字をエスケープするために mysql_real_escape 文字列を提供しました。ここまでは大丈夫です。しかし、問題は、JavaScript ツールチップを使用して製品のタイトルをホバーしていることです。ツールチップの機能は次のように提供されます。

   class="notfree{$g->id}"  
   onmouseover = "tooltip.show('{$w->title}');" 
   onmouseout="tooltip.hide();"

$w->title は、特別な文字列で DB に保存したタイトルです。Tooltip.show 関数は、タイトルに特殊文字を含むホバーを表示していません。データベースに入力する前に、「タイトル」の特殊文字にバックスラッシュを追加したいと思います。

私を助けてください..私はここで立ち往生しています

4

2 に答える 2

7

mysqli_real_escape_string()またはmysqli::real_escape_string()を使用します。

mysqliまたはさらに良いことに、 orで準備済みステートメントを使用しPDOます。

于 2012-10-11T06:39:28.767 に答える
2

mysqli_real_escape_String - http://php.net/manual/en/mysqli.real-escape-string.phpを使用します。最良の方法は、mysqliまたはPDOで準備済みステートメントを使用することです

于 2012-10-11T06:39:36.403 に答える