2016-05-05 115 views
-3

我有一个textarea,用户可以在其中添加一些东西。为避免插入HTML,我在textarea上使用以下PHP functions检查输入中是否有HTML

$text = addslashes(strip_tags(htmlspecialchars($_POST['message']))); 

来自用户的消息看起来像下面的数据库。

8KsAtP <a href="http://lqexajgwyrsk.com/">lqexajgwyrsk</a>, 
[url=http://imndawriqhnk.com/]imndawriqhnk[/url], 
[link=http://qyozfozrqier.com/]qyozfozrqier[/link], 
http://oykrvybeqata.com/ 

我的问题是,我怎么能检查有HTML代码textarea的,而不是在数据库中插入它像上面我想显示错误消息。

我的问题与How to prevent XSS with HTML/PHP?不同的是,我询问如何检查字段中是否存在html或链接。并回答这个问题,我如何检查也是由戴尔提供。而this question正在询问如何预防。我已经使用在this answer.

+0

这是错误的顺序'strip_tags'将一无所有脱光因为'htmlspecialchars'将已经转换所有标签到他们的实体。在输出中使用'htmlspecialchars',并对引号进行编码。 – chris85

+0

http://php.net/manual/en/function.htmlspecialchars.php和http://php.net/manual/en/function.htmlentities.php –

回答

0

给定功能要直接回答你的问题:

// check there is no html content 
if(strip_tags($_POST['message']) == $_POST['message']) { 
    // continue to process 
} else { 
    // there is html in the message 
}