0

フォームからデータを取得して MySQL データベースに入れるとき、SQL インジェクションを防ぐために mysql_real_escape_string() を使用してデータをエスケープする必要があることを私は知っています。私の質問は少し異なります。

MySQL データベースからデータを取得してページに表示していますが、問題が発生しています。私のデータが次のようになっているとします。

This is some test data, and here's a quote. For good measure, here are "some more" quotes.

さて、私のphpコードは次のようになります:

echo '<input type="text" value="' . $data . '">';

これにより、データ内に引用符があり、引用符でデータを囲む入力タグ内に表示されるため、壊れた HTML ページが発生します。

問題が見えますか?

これに対する最善の解決策は何ですか?

4

3 に答える 3

6

Just like mysql_real_escape_string() is for SQL operations, on the HTML side of things, it's htmlspecialchars().

于 2012-05-19T18:46:04.790 に答える
2

You need to escape the data for html entities:

echo '<input type="text" value="' . htmlentities($data) . '">';

于 2012-05-19T18:46:22.943 に答える
1

次のことを試すことができます。

echo '<input type="text" value="' . stripslashes($data) . '">';

PHPコードをHTMLから分離できる場合に最適です。

<input type="text" value="<?php echo stripslashes($data);?>">

ありがとう :)

于 2012-05-19T18:59:16.720 に答える