2

テキストエリアがあり、WYSIWYG エディターを使用して、ユーザーが必要に応じてテキストをフォーマットできるようにしています。色の変更、太字の作成、サイズの変更などです。問題は、データをテーブルに挿入して行を取得した後です。フォーマットは表示されず、プレーンテキストのみです。フォーマットを失わないようにテキストを挿入するときに何かすべきことはありますか? 私のテーブルcollationはに設定されていますutf8_unicode_ci

これがhtmlで、フォームを送信するためにajaxを使用しているため、name属性はありません

<textarea  id="description" class="jqte-test" ></textarea>

挿入クエリは次のとおりです。

$desc = trim(strip_tags($_POST["description"]));
$insert = $mysqli->prepare("insert into `test`(`description`) values(?)");
echo $mysqli->error;
$insert->bind_param('s', $desc);
$insert->execute();
4

1 に答える 1

5

strip_tagsは、値から html/php タグを取り除くために使用されます。

あなたが使用している WYSIWYG エディターは html データを出力していると思いますので、strip_tags 関数を使用してフォーマットをキャンセルしています。


更新: pdo を介してパラメーターをクエリにバインドすると、挿入されたデータがエスケープされます。

データを挿入するとき、htmlspecialchars ($value, ENT_QUOTES) を適用します

データを表示するときは、htmlspecialchars_decode ($value, ENT_QUOTES) を適用します

于 2013-08-10T21:49:36.387 に答える