PHPMySQL文字列を適切に保存/エスケープする方法

IamCavic

<br/>or&、<などを含む文字列の刺し傷に問題があります

DBに保存する前に、このようにエスケープしています

nl2br(htmlentities($string, ENT_QUOTES, 'UTF-8'));

ただし、保存された結果を表示すると、次のようなものが表示されることがあります

&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;&lt;br /&gt;<br /><br />

誰かが文字列をエスケープするための最良の方法を教えてくれますが、それを画面に表示したいときにブレークポイントなどを保持できますか?

ありがとうございます

ウィルB。

あなたが設定を確認してくださいdouble_encodefalseそれ以外の場合は、すでにエンコードされた文字列を回し、再びエンコードされます、&amp;&amp;amp;その後、を使用して表示html_entity_decodeすると、まだエンコードされているように見えます。

望ましくない結果:http//ideone.com/uQxuAM


を使用htmlentities($string, ENT_QUOTES, 'UTF-8', false);すると、これが発生しないことが保証されます。

次に、を使用html_entity_decode($string, ENT_QUOTES, 'UTF-8');して値を表示します。

デモ:http//ideone.com/8Jo7YA


ただし、MySQLはデコードされた値をデータベースに完全に保存できます。

htmlentitiesでエンコードされた文字列をデータベースに保存する必要はありません。CSVまたはPDFを生成したり、電子メールを送信したり、HTML以外のものを送信したりするとどうなりますか?

データをエンコードするプログラミングを2倍実行し、データベース内のデータ量を増やしてから、出力をデコードする必要があるという事実を除けば、オンラインで、なぜそうすべきでないのかを答える記事がたくさんあります。

したがって、結果のデータ出力をhtmlで表示するために値をエンコードするだけで済みます。

代わりに、を使用して入力をエスケープする必要があります mysqli_real_escape_string

$string = '<a href="/path/to/file?a=b&foo=bar#baz">My Link</a>';
$sql = "INSERT INTO links (link)"
     . "VALUES(" . mysqli_real_escape_string($string) . "')";

またはそれでも準備されたステートメントを使用する

$stmt = $mysqli->prepare("INSERT INTO links (link) VALUES(?)");
$stmt->bind_param("s", $string);
$stmt->execute();

次に、出力を成功メッセージとしてフォーマットして、データベースに実際に追加されたものを表示します。

$html = "<div>Added Link: " . htmlentities($string, ENT_QUOTES, 'UTF-8', false) . "</div>";

これhtml_entity_decodeで、ブラウザでhtmlをレンダリングするためを使用する必要はありません

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

XML-文字列をエスケープする適切な方法

分類Dev

Terraform文字列を適切にエスケープする

分類Dev

適切なエスケープシーケンス文字を文字列に追加する方法

分類Dev

生のDjangoSQLクエリで文字列を適切にエスケープする

分類Dev

C#を使用してBHOでJavaScriptを挿入する-文字列を適切にエスケープする方法

分類Dev

PHPの正規表現で使用するために文字列を適切にエスケープする方法は?

分類Dev

要素属性で設定するときに、特殊文字を適切にエスケープする方法

分類Dev

PHP変数を含むHTML文字列で引用符をエスケープする適切な方法

分類Dev

改行文字をエスケープ/エスケープ解除する適切な方法

分類Dev

HTML文字を適切にエスケープ解除します

分類Dev

bashコマンドのエスケープ文字を適切に処理する

分類Dev

JavaScript-文字列にエスケープ文字を表示する方法

分類Dev

JSONで予約済みの正規表現文字を適切にエスケープする方法は?

分類Dev

変数/レジスタを適切にvimエスケープする方法

分類Dev

PowerShellでバックスラッシュ区切り文字を使用して文字列を適切にトリミングおよびエスケープする

分類Dev

bashで感嘆符を適切にエスケープする方法は?

分類Dev

スキャナーにエスケープ文字を適切に読み込ませる方法は?

分類Dev

エスケープされたUnicode文字を適切なUnicode文字に置き換える方法は?

分類Dev

文字列内の文字を適切にエスケープして、CでJSON準拠の形式を取得するにはどうすればよいですか?

分類Dev

文字列置換スクリプトで「=」を適切にエスケープするにはどうすればよいですか?

分類Dev

フラスコアプリケーションにグローバル変数を適切に保存する方法

分類Dev

CSVファイルで使用するためのJSON特殊文字を適切にエスケープする

分類Dev

正規表現で区切り文字を2倍にして区切り文字をエスケープする方法

分類Dev

Spark-区切り文字をエスケープする文字列列を1つの部分に分割します

分類Dev

XMLに変換する前にPOSTデータをエスケープする適切な方法

分類Dev

エスケープ文字を文字列に置き換える方法

分類Dev

文字列からPHP配列区切り文字をエスケープする

分類Dev

Postgres /ノードで生のSQLクエリ(plainto_tsquery)を適切にエスケープする方法

分類Dev

Bashスクリプトで引用符を適切にエスケープする方法は?

Related 関連記事

  1. 1

    XML-文字列をエスケープする適切な方法

  2. 2

    Terraform文字列を適切にエスケープする

  3. 3

    適切なエスケープシーケンス文字を文字列に追加する方法

  4. 4

    生のDjangoSQLクエリで文字列を適切にエスケープする

  5. 5

    C#を使用してBHOでJavaScriptを挿入する-文字列を適切にエスケープする方法

  6. 6

    PHPの正規表現で使用するために文字列を適切にエスケープする方法は?

  7. 7

    要素属性で設定するときに、特殊文字を適切にエスケープする方法

  8. 8

    PHP変数を含むHTML文字列で引用符をエスケープする適切な方法

  9. 9

    改行文字をエスケープ/エスケープ解除する適切な方法

  10. 10

    HTML文字を適切にエスケープ解除します

  11. 11

    bashコマンドのエスケープ文字を適切に処理する

  12. 12

    JavaScript-文字列にエスケープ文字を表示する方法

  13. 13

    JSONで予約済みの正規表現文字を適切にエスケープする方法は?

  14. 14

    変数/レジスタを適切にvimエスケープする方法

  15. 15

    PowerShellでバックスラッシュ区切り文字を使用して文字列を適切にトリミングおよびエスケープする

  16. 16

    bashで感嘆符を適切にエスケープする方法は?

  17. 17

    スキャナーにエスケープ文字を適切に読み込ませる方法は?

  18. 18

    エスケープされたUnicode文字を適切なUnicode文字に置き換える方法は?

  19. 19

    文字列内の文字を適切にエスケープして、CでJSON準拠の形式を取得するにはどうすればよいですか?

  20. 20

    文字列置換スクリプトで「=」を適切にエスケープするにはどうすればよいですか?

  21. 21

    フラスコアプリケーションにグローバル変数を適切に保存する方法

  22. 22

    CSVファイルで使用するためのJSON特殊文字を適切にエスケープする

  23. 23

    正規表現で区切り文字を2倍にして区切り文字をエスケープする方法

  24. 24

    Spark-区切り文字をエスケープする文字列列を1つの部分に分割します

  25. 25

    XMLに変換する前にPOSTデータをエスケープする適切な方法

  26. 26

    エスケープ文字を文字列に置き換える方法

  27. 27

    文字列からPHP配列区切り文字をエスケープする

  28. 28

    Postgres /ノードで生のSQLクエリ(plainto_tsquery)を適切にエスケープする方法

  29. 29

    Bashスクリプトで引用符を適切にエスケープする方法は?

ホットタグ

アーカイブ