我正在创建一个评论框,人们可以在其中提出问题。
我让很多人问他们如何做一些涉及在表单中输入代码的事情。
该表单通过 htmlpurifier 以确保其使用安全。
但是,当有人输入回显代码等时,它是不允许的。或者,如果有人输入了一个 div,那么它也不允许这样做,即使包装在 <code> 中也是如此。
例如这个:
<code><div class="classname"></div></code>
只会添加一个div。
和
<code><?php echo $word; ?></code>
根本不会显示代码。
我设置 htmlpurifier 的方式是:
$content = $_POST['comment'];
$rawf = str_replace('<code>', '<pre><code>', $content);
$rawfp = str_replace('</code>', '</code></pre>', $rawf);
require_once '../Libs/htmlPurifier/library/HTMLPurifier.auto.php';
$purifierconfig = HTMLPurifier_Config::createDefault();
$purifierconfig->set('HTML.Allowed', 'b,a[href],i,em,br,code,pre');
$purifier = new HTMLPurifier($purifierconfig);
$clean_html = $purifier->purify($rawfp);
$ticketpost = str_replace('<a ', '<a rel="nofollow" ', $clean_html);
然后使用 PDO 准备语句将 $ticketpost 插入数据库。
有什么我没有做或做错的事情吗?
如果是这样,请你帮忙。
谢谢