2010-07-07 37 views
3

我在我的网站中使用TinyMCE编辑器。当我插入到数据库时,我想学习正确的过滤器方法。需要使用哪些过滤器?例如,我通过这种方式获得了对DB的输入;哪一个是在PHP中修正HTML编辑器的最佳方法?

$example = $_POST['example']; 

<textarea name="example"></textarea> 

我没有使用htmlscepialchars();因为我需要html标签。 “对不起,因为我的英语不好”。

+0

问题不明确。你会在哪里放置'$ example'的内容。你不想让什么? – Artefacto 2010-07-07 11:04:56

+0

@Artefacto我想允许html标记,但我想阻止不需要的sql查询和其他不需要的代码。 – Aaron 2010-07-07 11:14:59

+0

检查我的答案,这就是你需要的一切。 – 2010-07-07 11:45:13

回答

0

如果我理解正确,您希望将html保存到数据库,并且需要某种方式来对其进行编码?

你可以做以下保存到数据库之前:

urlencode($_POST['example']); 

当你检索,可以urldecode($的数据);

+0

有没有理由让我投票呢?我给出的答案是一个可行的解决方案 - 所以,谁投票更好地挺身而出,并解释他们为什么觉得它不是... – xil3 2010-07-07 11:16:48

+0

+1来补偿你的懦弱downvote – Thariama 2010-07-07 11:24:34

+0

我欣赏它:) – xil3 2010-07-07 11:35:55

1

HTMLPurifier。这里

下载:http://htmlpurifier.org/

它包含:

include 'path/to/HTMLPurifier.auto.php'; 

使用它:

$config = HTMLPurifier_Config::createDefault(); 
$config->set('Core', 'Encoding', 'UTF-8'); 
$config->set('XHTML', 'Doctype', 'XHTML 1.0 Strict'); 
$purifier = new HTMLPurifier($config); 
$clean_html = $purifier->purify($dirty_html); 

,好好睡一觉知道有清洗这样的HTML中没有XSS攻击。

建议mysql_real_escape_string()的人可能没有得到你的问题(或者我没有),你问的是如何从WYSIWYG编辑器过滤HTML标记,以便它可以安全地存储在数据库中。

mysql_real_escape_string()与防止SQL注入相关,但准备好的语句(谷歌“PDO”)更好。

+0

是的这是真的,我没有读完你的答案。 – 2010-07-07 12:09:06

相关问题