2

私は、誰もが好きなように入力できるようなシステムを持っています。<img SRC="..."/>ただし、<a href="..."></a>などのタグを使用しているようにも見える場合があります。

どうすればこれを正確に防ぐことができますか?たとえば、誰か<h1>Hello</h1>がテキストを入力しても大きくはなりませんが、表示されるだけです<h1>Hello</h1>

これが不可能な場合は、別の方法を教えてください。

4

6 に答える 6

7

HTMLを記述どおりに表示するには、特殊文字&、<、>を使用して「エスケープ」する必要がありますhtmlspecialchars()

または、すべてのタグを削除して、残りのテキストを次のように表示することもできます。strip_tags()

于 2012-09-11T17:55:53.767 に答える
3

あなたは試すことができます:

echo htmlspecialchars('<a href="http://www.google.com">Google</a>');

詳細はこちら

于 2012-09-11T17:54:10.677 に答える
1

印刷する文字列にhtmlentitiesを使用するだけです

于 2012-09-11T17:54:37.647 に答える
0

特別な文字またはタグは、異なる要素として扱われます。データベースにテキストを挿入する前に、htmlspecialcharacters($ string_to_be_inserted)を使用してhtmlタグをエスケープできます。

すべてのhtmlタグが削除され、テキストのみがデータベースに挿入されます。

お役に立てれば

于 2012-09-11T18:09:07.787 に答える
0

HTMLPurifierを使用して、ユーザー入力から不要なHTMLタグを取り除くこともできます

于 2012-09-11T18:16:00.577 に答える
-1

htmlspecialchars_decode()関数を使用します。それは私にとってはうまくいきます...

ガイドラインを使用する

コード付きのテキスト

<?php

    $text = " 
    <html>
    <head>
        <title>Page Title</title>
    </head>
    <body>
         Reference site about Lorem Ipsum, giving information on its origins, as well as a random Lipsum generator.
    </body>
    </html> ";

    OR

    $text = $row['columnname'];  // Here define your database table column name.

    echo htmlspecialchars_decode($text);  

?>

出力:

Lorem Ipsumに関するリファレンスサイト。その起源に関する情報と、ランダムなLipsumジェネレーターが記載されています。

于 2018-04-25T23:10:05.583 に答える