如何使用aloha编辑器添加html代码

时间:2014-08-12 03:08:32

标签: php mysql aloha-editor

我有一个论坛,任何用户都可以写文章。该论坛由aloha编辑器提供用户输入功能。它有一个用于编辑的页面和另一个用于显示的页面。但是当用户尝试输入html代码时会出现问题。

假设用户编写标题标记

`<h1>header</h1>`

正在输出

标题

我想要输出

<h1>Header</h1>

任何支持?。

4 个答案:

答案 0 :(得分:1)

当用户提交文章时,您需要在渲染文章之前使用htmlentities(PHP htmlentities)。

答案 1 :(得分:0)

你应该转义html代码,例如你应该使用:

&lt;h1&gt;Header&lt;/h1&gt;

而不是

<h1>Header</h1>

答案 2 :(得分:0)

我很抱歉,但我担心我的答案不是最好的,我知道有一些更好的技巧可以达到这个(使用@chiwangc所说的)但是如果你曾经卡住了你可以使用我喜欢的东西。

只需将要输出的html代码放在'textarea'中(您可能要禁用它),例如

<textarea><h1>Header</h1></textarea>

请注意!这只是你的选择,但如果它满足你,那就欢呼。

希望它有所帮助。

答案 3 :(得分:0)

我不知道什么是 aloha编辑器,但你绝对应该检查用户输入的安全中断尝试(js-includes,sql-injects等等)。例如,它可能是像这样的函数,我在我的一个项目中使用了它:

function filterMsg($m){
    $m=trim( stripslashes( urldecode($m) ) );
    $m=htmlentities( $m, ENT_QUOTES | ENT_SUBSTITUTE, 'UTF-8' );
    $m=preg_replace( '/[\\s\\t]+/iu', ' ', $m );
    $m=preg_replace( '/[\\s\\|]{2,999}/iu', '|', $m);
    $m=preg_replace( '/([^\\|]{1,40})[\\|]+/iu', '$1 ', $m);
    $m=str_replace( '|', '<br>', $m);
    $m=str_replace( "\n", '<br>', $m);
    return $m;
}

但如果你只是想展示未解析的内容,你可以使用<xmp></xmp> html标签。