0

ブログ システムを作成しようとしています。ブログ投稿データを mysql に保存したいところですが、ここでデータをクリーンアップまたはサニタイズする方法をほとんど混乱させません。

function test_input($data) {
  $data = trim($data);
  $data = stripslashes($data);
  return $data;
}

ajaxを介してブログデータを投稿すると、次のようになりました

<h1 class="text-center">
    Write the titles of article here
</h1>

次に、投稿データを消去してエコーします

echo $title = mysqli_real_escape_string($connecDB, test_input($_POST['page__title']));

そしたら返ってきたのがこちら

\r\n    Write the titles of article here\r\n

応答でこれらの\r\nが表示される理由を知りたいのですが、どうすればそれらを取り除くことができますか。これはhtml投稿をきれいにする最良の方法です

注:データをmysqlでhtmlとして保存したい

スタイルとスクリプトタグを見つけて削除する正規表現を既に持っています。また、ストリップスラッシュを削除してstrip_tagsも追加しようとしましたが、まだ取得しています \r\n

4

1 に答える 1

0

制御文字を対応するエスケープ シーケンスに置き換える\r\nためです。mysql_real_escape_string()この関数は、変数を MySQL クエリに代入する場合にのみ使用することを目的としています。HTML での出力には使用しないでください。HTML 出力をサニタイズする適切な関数はhtmlentities().

$title = test_input($_POST['page__title']);
echo htmlentities($title);

出力に改行を保持したい場合は、 も使用する必要がありますnl2br()

echo nl2br(htmlentities($title));
于 2016-06-23T02:03:06.293 に答える