0

我让用户输入一些将存储在 sql 中的信息。当然,我想转义所有引号等..但我也不希望将这些东西输出到最终的 html 中。

我正在为所有 $_POST 变量运行此函数。它有效吗?

 function cleanArray($array)  //prevent funky insertions
{
foreach ($array as &$value)
{
    $value = mysql_real_escape_string(stripslashes(nl2br($value)));
}
return $array;  
}

我担心转义字符串和stripslashes相互抵消?

4

1 回答 1

5

要在将字符串数据插入数据库之前对其进行转义,请使用mysql_real_escape_string.

要稍后在 HTML 页面中输出相同的数据,htmlspecialchars()如果您希望 HTML 源代码显示为文字字符,或者strip_tags()如果您想静默删除任何 HTML,请使用。

不需要其他任何东西,除非您激活了魔术引号,在这种情况下,您确实需要stripslashes()在执行mysql_real_escape_string(). 但是,魔术引号已被弃用,最好将其关闭

于 2011-05-26T20:05:43.910 回答