0
我的PHP代码,应该删除<和>,因为它显示在网站上从数据库中,并防止欺骗活动PHP代码不删除< and >标签
<?php
$acc_music = mysql_real_escape_string($_POST['acc_music']);
function strip_tags_content($text, $tags = '', $invert = FALSE) {
preg_match_all('/<(.+?)[\s]*\/?[\s]*>/si', trim($tags), $tags);
$tags = array_unique($tags[1]);
if(is_array($tags) AND count($tags) > 0) {
if($invert == FALSE) {
return preg_replace('@<(?!(?:'. implode('|', $tags) .')\b)(\w+)\b.*?>.*?</\1>@si', '', $text);
}
else {
return preg_replace('@<('. implode('|', $tags) .')\b.*?>.*?</\1>@si', '', $text);
}
}
elseif($invert == FALSE) {
return preg_replace('@<(\w+)\b.*?>.*?</\1>@si', '', $text);
}
return $text;
}
mysql_query("UPDATE users SET youtube_embed = '".strip_tags_content($acc_music)."' WHERE id = '" . $_SESSION['user']['id'] . "'")or die(mysql_error());
?>
的acc_music输出被放在数据库但不删除<和>标记。
@rjdown似乎并没有对我说此行为作为htmlspecialchars – fusion3k
@rjdown htmlspecialchars:'<'到'<',而不是'<'到'' – fusion3k
请发表一个原始文本/想要的转换的例子吗?您的代码显示为'strip_tags'功能,但您的问题显示为''=>'a' – fusion3k