0

HTML Purifier http://htmlpurifier.org/をインストールしようとしていますが、 Undefined variable: dirty_html というエラーが表示されます。どうすればこの問題を解決できますか?

これがPHPコードです。

 require_once '../../htmlpurifier/library/HTMLPurifier.auto.php';

 $config = HTMLPurifier_Config::createDefault();
 $config->set('Core.Encoding', 'UTF-8'); // replace with your encoding
 $config->set('HTML.Doctype', 'XHTML 1.0 Strict'); // replace with your doctype
 $purifier = new HTMLPurifier($config);

 $clean_html = $purifier->purify($dirty_html);

これが私のhtmlフォームです。

<form method="post" action="index.php">
    <fieldset>
        <ul>
            <li><label for="about-me">About Me: </label>
            <textarea rows="8" cols="60" name="about-me" id="about-me"></textarea></li>

            <li><label for="my-interests">My Interests: </label>
            <textarea rows="8" cols="60" name="interests" id="interests"></textarea></li>

            <li><input type="submit" name="submit" value="Save Changes" class="save-button" />
        </ul>
    </fieldset>

</form>
4

2 に答える 2

3

何を浄化したいのか不明。いくつかの $_POST vars? を定義していないため、そのエラーが発生します$dirty_html。たとえば、about_me フィールドを浄化したい場合は、次を使用します。

$clean_html = $purifier->purify($_POST['about_me']);
于 2010-03-30T12:39:33.930 に答える
1

$dirty_html はウェブページの HTML でなければなりません

HTML に DOCTYPE と Encoding を追加しているように見えるので、次のように使用すると想定しました。

$dirty_html =<<<DIRTYHTML
<form method="post" action="index.php">
    <fieldset>
        <ul>
            <li><label for="about-me">About Me: </label>
            <textarea rows="8" cols="60" name="about-me" id="about-me"></textarea></li>

            <li><label for="my-interests">My Interests: </label>
            <textarea rows="8" cols="60" name="interests" id="interests"></textarea></li>

            <li><input type="submit" name="submit" value="Save Changes" class="save-button" />
        </ul>
    </fieldset>

</form>
DIRTYHTML;

$clean_html = $purifier->purify($dirty_html);
echo $clean_html;
于 2010-03-30T12:32:48.063 に答える