1

コードが HTML としてデータベースに保存されているコードをユーザーが共有できるようにする単純なサイトを作成しました。例えば

    <!DOCTYPE html>
            <html lang="en">
                <head>
                    <meta http-equiv="content-type" content="text/html; charset=utf-8">
                    <meta name="viewport" content="width=1024">
                    <title></title>
                </head>

                <body id="" class="">


</body>
</html>

私が抱えている問題は、データベースが吐き出すものをラップして<code><pre></pre></code>もHTMLがレンダリングされ、表示するコードとして扱われないため、他の人がサイトに表示することです。これを回避するために使用する必要があることを読みました&gt;が、ユーザーが生のコードを共有し、そのようなコードを html エンティティに変換することを開始できないため、これは実現不可能です! どうすればこれを修正できますか? ありがとう。

これを DB に挿入するフォームのコードは次のとおりです: http://pastebin.com/i3pn2AjT

そして、これは私が現在それを表示する方法です: <div class="code"> <pre> <?php echo get_post_meta($posts_post_id, 'post_code', true); ?> </pre> </div>

4

2 に答える 2

7

表示時または挿入時に HTML コードをエスケープする必要があります。

以前の質問から、PHP を使用しているようです。でこれを実現できますhtmlentities()

例えば:

<code><?php echo htmlentities($userSuppliedHTML, ENT_QUOTES, 'UTF-8'); ?></code>
于 2011-03-13T18:49:41.010 に答える