试图进入我的数据库为特殊字符停在文字区域子弹(Trying to stop bullets in t

2019-09-20 06:34发布

我目前使用的这一点,但它似乎并不奏效子弹:

function sanitizeMySQL($var){
        $var = mysql_real_escape_string($var);
        $var = sanitizeString($var);
        return $var;
}

function sanitizeString($var)
{
    $var = str_replace('•','•', $var);
    $var = htmlentities($var);
    $var = strip_tags($var);
    return $var;
}

这是子弹出现像我的分贝有人提交他们通过一个文本之后:

•

编辑:这是什么现在我得到: •

我有存储在我的数据库子弹,所以我知道它允许他们。 是否有存储在Latin-1编码的子弹以正确的方式?

Answer 1:

这是通过你的形式和源代码提交的数据不具有相同的编码。 因此, •从源代码字符不匹配的实际数据的人。 因此他们没有被取代。 统一在一个共同的编码。 见处理Unicode的前向后在一个Web应用程序 。

此外,您的消毒策略是很奇怪的。 我不知道你有什么反对“•”,这不应该在一般的“净化”的功能所取代。 此外,你是第一个HTML逃避一切, 然后被剥离的标签。 提示:不会有任何标签了,你逃脱后他们。 接下来,你不应该再修改字符串你SQL逃脱后。 见大逃避现实(或:你需要知道的工作,文本中的文本是什么) 。



文章来源: Trying to stop bullets in textareas from entering my database as special characters