0

我正在尝试安装 HTML Purifier http://htmlpurifier.org/但我收到以下错误未定义变量: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 变量?您收到该错误是因为您尚未定义$dirty_html. 例如,如果要净化 about_me 字段,请使用

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

$dirty_html 应该是网页的 HTML

看起来您正在向 HTML 添加 DOCTYPE 和编码,所以我假设您会像这样使用它:

$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 回答