3

問題があります。htmlタグである文字列をエコーし​​たいので、それを言う方法がわかりませんが、これは私のコードです

echo '<input type="hidden" name="id" value='.($row['id']).'>';

$row['id'] の値が である場合'<b>test</b>'、問題はエコーの出力にあります。終了タグの終了タグは<b>入力タグを閉じるため、入力の値に'<b' 感謝します。

4

5 に答える 5

5

htmlentities($row['id'],ENT_QUOTES)これはにエンコード< >され&lt;&gt;

$str = "A 'quote' is <b>bold</b>";


echo htmlentities($str);
// Outputs: A 'quote' is &lt;b&gt;bold&lt;/b&gt;

echo htmlentities($str, ENT_QUOTES);
// Outputs: A &#039;quote&#039; is &lt;b&gt;bold&lt;/b&gt;

上記はどちらも正しいですが、2 番目の方が安全です。

于 2013-08-07T15:30:45.230 に答える
4
  1. データを渡してhtmlspecialchars、HTML 属性に安全に挿入できるようにします (特別な意味を持つ文字をエンティティに変換することにより)。
  2. "属性値を引用して (コードには、出力された行 IDが含まれていません)、スペース=などが値の一部として扱われるようにします。

そのような:

echo '<input type="hidden" name="id" value="'. htmlspecialchars($row['id']) . '">';

または、PHP モードでマークアップのチャンクを出力しないでください。変数/関数呼び出しが必要になるまで、ストレート出力モードに切り替えます。

<input type="hidden" name="id" value="<?php echo htmlspecialchars($row['id']); ?>">
于 2013-08-07T15:28:21.093 に答える
1

適切にエスケープする必要があります:

echo '<input type="hidden" name="id" value="'.($row['id']).'">';
于 2013-08-07T15:28:22.350 に答える
-1

あなたはあなたが望むものを手に入れるでしょう:-

htmlentities($this->input->post('txtEditor'));

于 2019-12-13T10:56:18.253 に答える