問題があります。htmlタグである文字列をエコーしたいので、それを言う方法がわかりませんが、これは私のコードです
echo '<input type="hidden" name="id" value='.($row['id']).'>';
$row['id'] の値が である場合'<b>test</b>'
、問題はエコーの出力にあります。終了タグの終了タグは<b>
入力タグを閉じるため、入力の値に'<b'
感謝します。
htmlentities($row['id'],ENT_QUOTES)
これはにエンコード<
>
され<
、>
$str = "A 'quote' is <b>bold</b>";
echo htmlentities($str);
// Outputs: A 'quote' is <b>bold</b>
echo htmlentities($str, ENT_QUOTES);
// Outputs: A 'quote' is <b>bold</b>
上記はどちらも正しいですが、2 番目の方が安全です。
htmlspecialchars
、HTML 属性に安全に挿入できるようにします (特別な意味を持つ文字をエンティティに変換することにより)。"
属性値を引用して (コードには、出力された行 IDが含まれていません)、スペース=
などが値の一部として扱われるようにします。そのような:
echo '<input type="hidden" name="id" value="'. htmlspecialchars($row['id']) . '">';
または、PHP モードでマークアップのチャンクを出力しないでください。変数/関数呼び出しが必要になるまで、ストレート出力モードに切り替えます。
<input type="hidden" name="id" value="<?php echo htmlspecialchars($row['id']); ?>">
適切にエスケープする必要があります:
echo '<input type="hidden" name="id" value="'.($row['id']).'">';
あなたはあなたが望むものを手に入れるでしょう:-
htmlentities($this->input->post('txtEditor'));